/ / método indefinido `text? ' para nil: NilClass Validar uniqness rails3 ruby ​​187 - rubi sobre trilhos, ruby-on-rails-3

método indefinido `text? ' para nil: NilClass Validar uniqness rails3 ruby ​​187 - ruby-on-rails, ruby-on-rails-3

Acabei de atualizar do rails 2.3 para 3, eu estou tentando substituir este método antigo com algo mais limpo, porque ele está produzindo o nome do modelo e do campo, wtf!

insira a descrição da imagem aqui

No entanto, recebo o erro acima ao chamar validates_uniqueness_of (a presença funciona bem). Eu passei no escopo do ID primário e ainda o recebo. Qualquer ajuda é bem vinda.

   def validate
if org_name.blank?
errors.add(:org_name, :blank, :default => nil)
else
if (org = Organization.find_by_org_name(org_name)) && org != self
errors.add(:org_name, :taken, :default => nil, :value => org_name)
end
end
end

para

validates :org_name, :presence => true
validates_uniqueness_of :org_name, :scope => :org_id

Respostas:

1 para resposta № 1

Ths é a sintaxe do Rails 3 para validação de exclusividade:

valida: org_name, uniqueness: {scope:: org_id}


0 para resposta № 2

Isso é fácil de consertar.

Em primeiro lugar, analise a mensagem de erro:

Falha na tradução do nome da organização: en.activerecord.errors.models.user.attributes.org_name.blank

Isso é causado pela seguinte linha de código:

errors.add(:org_name, :blank, :default => nil)

Quando você liga para o acima, você está dizendo para procurar uma tradução cuja chave é :blank. Você provavelmente não configurou isso ainda, então, para fazer isso, basta acessar o arquivo locales (config / locales / en.yml) e adicionar o seguinte:

en:
hello: "Hello world"
activerecord:
errors:
models:
organization:
attributes:
org_name:
blank: "can"t be blank."

Espero que isso conserte isso para você.