Ruby on rails Rails中的动态表单验证

Ruby on rails Rails中的动态表单验证,ruby-on-rails,validation,activerecord,activemodel,Ruby On Rails,Validation,Activerecord,Activemodel,我有一个表格要验证。验证基于两个其他模型对象中的属性,但表单本身并不对应于ActiveRecord模型 是否可以使用ActiveModel来实现这一点 class Person < ActiveModel has_one :shoe validates :name, :length => { :maximum => self.shoe.size } end class-Person{:max=>self.shoe.size} 结束 我基本上希望基于另一个模型对象的属

我有一个表格要验证。验证基于两个其他模型对象中的属性,但表单本身并不对应于ActiveRecord模型

是否可以使用ActiveModel来实现这一点

class Person < ActiveModel
  has_one :shoe
  validates :name, :length => { :maximum => self.shoe.size }
end
class-Person{:max=>self.shoe.size}
结束

我基本上希望基于另一个模型对象的属性验证表单。无论如何这可能吗?

不确定ActiveModel/ActiveRecord的问题是什么。你想要的是能够在验证中引用记录,对吗?我对任何事情都没有“问题”。我只想在非ActiveRecord模型中进行验证,该模型基于另一个类的属性。另外,验证具有自引用person类的功能,但可能意味着引用已验证的记录。请澄清抱歉,ACtiveRecord是一个复制粘贴错误。我在问ActiveModel是否可以为我做这件事,但我并不局限于ActiveModel。我想用另一个类(Shoe)的属性对一个类(Person)执行ActiveRecord样式的验证,而这个类又是被验证的类的属性。
class Person 
  include ActiveModel::Validations

  # has_one :shoe # This won't work

  validates :validates_name_length

  private
  def validates_name_length
    errors.add :name, 'too long' if name && name.length > shoe.size 
  end
end