Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Geisimar Rech

[Resolvido] Rails + CouchDB

Recommended Posts

Bom dia,

no model User, gostaria de aplicar um filtro antes de salvar, para

verificar se os campos nome e email não estão vazios, estou utilizando

banco de dados CouchDB, rails 2.3.8, porém alguns q utilizei não

funcionaram.

 

segue o model:

class User < CouchRest::ExtendedDocument

#use_database DB

include CouchRest::Validation

use_database CouchRest.database!('mydb')

property :name
property :email

timestamps!

validates_presence_of :name, :email
validates_format_of :email, :as => :email_address

#before_save :before_method, :clear_name
#before_save :before_method, :clear_email
#{set_callback :save, :before, :clear_name}
#set_callback :save, :before, :clear_email

save_callback :before, :clear_name
save_callback :before, :clear_email

  def clear_name
      self.name = "" if self.name == "Nome"
  end

  def clear_email
    self.email = "" if self.email == "Email"
  end
end

save_callback :before  --> neste caso, ocorre o seguinte erro:
undefined method `save_callback' for User:Class,
before_save :before_method, :clear_name --> neste não executa,
set_callback :save, :before, :clear_name --> neste tb não executa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Geisimar,

 

primeiro gostaria de mencionar que estou feliz de saber que está utilizando CouchDB (eu sou um mega fã desse banco).

 

Bom, acho que você não precisa utilizar nenhum callback para validar os dados, os callbacks geralmente são utilizados para outros fins, como por exemplo enviar um e-mail após o dado ser salvo. Para validações basta utilizar

validates_presence_of :campo

Você pode estar tendo algum tipo de problema com relação as versões utilizadas, repare que agora os projetos são independentes

 

CouchRest http://github.com/couchrest/couchrest

CouchRestExtendedDocument http://github.com/couchrest/couchrest_extended_document

 

O CouchRestExtendedDocument 1.0 precisa do active_suport, talvez você precise instalar o Rails 3 beta para utiliza-lo, se estiver utilizando alguma versão do CouchRest igual ou inferior a 0.37 não será necessário (afinal antes o Extended Document fazia parte da gem CouchRest).

 

Qualquer coisa fique a vontade para perguntar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.