ruby-on-rails – validate vs validates_associated

有一个可以直接用于关联的验证说明符(参见本07/08的4.1.2.12,还有一个validates_associated(见于 Rails Guide的3.2).
两者有何不同?

解决方法

它们都验证相关联的模型.

不同的是,第一个是关联的选项(例如,belongs_to,has_many等).例如.您在协会中定义“验证行为”.

在一个经典的“作者有很多书”的例子中,说你启用belongs_to:author,:validate =>真实的书模型.每当您验证书模型时,相关作者也必须有效.

另一个是单独的验证规则,您可以添加到其他验证.因此,在这种情况下,您可以启用相关对象的验证以及其他验证规则.

这可以相反的工作.作者:has_many:books; validates_associated:books.当您验证作者对象时,所有书籍也将被验证.

相关文章

以下代码导致我的问题: class Foo def initialize(n=0) @n = n end attr_accessor :n d...
这是我的spec文件,当为上下文添加测试“而不是可单独更新用户余额”时,我得到以下错误. require 's...
我有一个拦截器:DevelopmentMailInterceptor和一个启动拦截器的inititializer setup_mail.rb. 但我想将...
例如,如果我有YAML文件 en: questions: new: 'New Question' other: recent: ...
我听说在RSpec中避免它,let,let !,指定,之前和主题是最佳做法. 关于让,让!之前,如果不使用这些,我该如...
我在Rails中使用MongoDB和mongo_mapper gem,项目足够大.有什么办法可以将数据从Mongoid迁移到 Postgres...