这是我的问题的一个例子。
我有一个“房间”模型:
class Room < ActiveRecord::Base
has_many :items, :inverse_of => :room
accepts_nested_attributes_for :items
end
我有一个“项目”模型:
class Item < ActiveRecord::Base
belongs_to :room, :inverse_of => :items
validates :some_attr, :uniqueness => { :scope => :room}
end
我想验证属于某个房间的所有项目的 :some_attr 属性的唯一性。
当我尝试验证项目时,我收到此错误:
TypeError (Cannot visit Room)
我无法将验证的范围设置为 :room_id,因为项目尚未保存,因此 id 为 nil。我还想防止在“房间”模型中使用自定义验证器。
在 Rails 中有什么干净的方法吗?我也想知道我是否正确设置了 :inverse_of 选项......