2011-06-21 150 views
0

我有一个父模型(用户)与可选fields-first_name,last_name和必填字段 - 电子邮件和密码。我有一个子模型(Booking),其''belongs_to'到'User'和'accep_nested_attributes_for:user'。我的问题是,无论何时创建预订对象,我都需要为正在创建/更新的用户验证first_name和last_name的存在。基本上,人在创建预订对象时需要输入first_name和last_name。我曾在许多其他地方使用“用户”模型作为父项,但我不想在“用户”模型中添加验证。我想在'预订'模型中进行验证。 我该如何做到这一点?如何在创建子模型对象期间验证父模型属性?

回答

0

如果您使用validates_associated,它会验证相关模型

class Booking 
    belongs_to :user 

    validates_associated :user 
end 

附加题:http://rpheath.com/posts/412-a-better-validates-associated在比你的错误信息获得更多的“用户无效”

+0

thanx的帮助,但这种验证犯规帮帮我。 –

+0

thanx的帮助,但这种验证并不能帮助我。当我添加'validates_associated:用户'时,它为Action提供了ActionView :: Template :: Error(对于NilClass:Class的未定义方法'validators_on'),其中我接受了'User'的值。 –

+0

我也尝试使用“accepted_nested_attributes_for:user,:reject_if => proc {| u | u ['first_name']。blank?}”但这也行不通。 –

相关问题