Tengo un par de modelos simples que se asocia de este modo:valida: presencia frente a validates_presence_of utilizando los carriles 3
MODELOS
class Task < ActiveRecord::Base
belongs_to :user
validates :name, :presence => true, :message => 'Name cannot be blank, Task not saved'
end
class User < ActiveRecord::Base
has_many :tasks
end
vista tiene una llamada en él de este modo: user.tasks
< - entonces yo bucle a través de las tareas
el Problema:
En el modelo de tarea -
Cuando uso:
validates :name, :presence => true , :message => 'Name cannot be blank, Task not saved'
me sale un error 500:
ActionView::Template::Error (uninitialized constant User::Task):
NameError in View file
cuando uso:
validates_presence_of :name
todo funciona.
Pensé que ambos validan los métodos anteriores donde el mismo ... es el problema que tiene que ver con las asociaciones y cómo la validación se relaciona con los modelos asociados. Tengo la corazonada de que algo está pasando con la forma en que se asocian las cosas, pero es solo una corazonada.
Cualquier ayuda será apreciada. Muchas gracias.
¡Muchas gracias! Eso hizo el truco! – RidingRails
Tengo una pregunta sobre la internacionalización con respecto a esto. Si Rails proporciona el nombre del campo, ¿cómo puede este mensaje de error estar completamente localizado? Por ejemplo, en español, 'nombre' debe ser 'nombre'. ¿Hay alguna forma de suprimir el mensaje predeterminado por completo? – jn29098
Sé que esta es una publicación anterior, pero ¿dónde debería aparecer este mensaje de error, y se muestra después de enviar el formulario, por ejemplo? gracias – Richlewis