假设我有两节课
class User
attr_accessible :name
has_one :address
validates :name, :presence => true
validates_associated :address
end
class Address
attr_accessible :country, :user_id
belongs_to :user
validates :country, :presence => true
validates :user, :presence => true
end
现在,当我尝试创建无效时Address
,它会失败(这很好)
a = Address.new
a.valid? #=> false
但是当我用无效的用户构建它时Address
它通过(这很糟糕)
u = User.first
u.build_address
u.valid? #=> true
u.save #=> true
由于这User
与Address
国家=>无。
如果Rails 无效,我如何告诉Address
它不要保存?
修复:我通过在代码中添加后续行来解决此问题。谢谢大家。
validates_associated :address, :if => :address