我使用Rails 3.2.18。这是一个复杂的行为,但我们有一个has_many关系说如下:
class Item < ActiveRecord::Base
has_many :notes
...
class Note < ActiveRecord::Base
belongs_to :item
attr_accessor :body, :is_enabled
我想做的是一个方法:
@note=Note.find(2)
项目对象(或可能是注释对象)可以在建立关系之前进行检查。具体来说,在我们的身体中,我们有一堆内容必须检查所有项目是否有效(比如说我们使用像ITEM2这样的短语,ITEM17用于项目#2或项目#17)。如果任何项目无效,则该注释应将is_enabled设置为false并且不加载。如何在加载笔记之前检查ITEM2的有效性?我希望回调或者包含一个宏的条件:
has_many :notes, Proc.new { I don't know what to put here? }
THX
答案 0 :(得分:0)
考虑到在数据库中设置了is_enabled标志,您可以定义多个关联,如:
has_many :notes #This will retrieve all notes
has_many :enabled_notes, :conditions => {:is_enabled => true}