Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么“validates_associated”存在?_Ruby On Rails - Fatal编程技术网

Ruby on rails 为什么“validates_associated”存在?

Ruby on rails 为什么“validates_associated”存在?,ruby-on-rails,Ruby On Rails,railsguide的发言人说: 当您的模型与其他模型有关联并且它们也需要验证时,您应该使用此帮助器 因此,我认为如果没有验证\u关联的,就无法运行关联模型的验证 但实际上,它是在没有它的情况下运行的 有两种模式,学校和学生 class School < ActiveRecord::Base has_many :students validates :name, presence: true end class Student < ActiveRecord::Base

railsguide的发言人说:

当您的模型与其他模型有关联并且它们也需要验证时,您应该使用此帮助器

因此,我认为如果没有
验证\u关联的
,就无法运行关联模型的验证

但实际上,它是在没有它的情况下运行的

有两种模式,学校和学生

class School < ActiveRecord::Base
  has_many :students
  validates :name,  presence: true
end

class Student < ActiveRecord::Base
  belongs_to :school
  validates :name,  presence: true
end
我的问题是

  • 这是铁路向导的错误吗

  • 为什么
    验证与之相关的\u
    存在

  • 还是我有什么错误的想法

    我的环境是

    ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin14.0]
    Rails 4.2.0
    

    保存之前,它会检查关联对象是否有效,但正如我在上面所写的,即使没有
    验证关联对象,关联对象的验证也会运行。@tarky除非子模态保存,否则第一个模态不会保存。谢谢!但正如我在上面所写的,无论是否使用
    验证\u关联的
    ,第一个模型都没有保存。
    class School < ActiveRecord::Base
      has_many :students
      validates :name,  presence: true
      validates_associated :students
    end
    
    class Student < ActiveRecord::Base
      belongs_to :school
      validates :name,  presence: true
    end
    
    school.errors.full_messages
    => ["Students is invalid", "Students is invalid"]
    
    ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin14.0]
    Rails 4.2.0