我爲頁眉和項目的下列類和想獲得該只IS_DELETED = false,並不顧一切的項目is_enabled(或獲得任何真/假,因爲is_enabled是布爾):如何得到一個不同的has_many關係,其中標準
class Header < ActiveRecord::Base
has_many :items, :conditions => 'items.is_deleted=false and items.is_enabled=true', :order => 'position'
...
end
class Item < ActiveRecord::Base
belongs_to :header
....
end
h290=Header.find(290)
h290.items # 2 item
h290.items.where('is_enabled=false') # and's them to (items.is_deleted=false and items.is_enabled=true) AND (is_enabled=false) ORDER BY position
有沒有辦法說無視is_enabled = true或讓這個上面的其中或運算的結果使得: (items.is_deleted=false and items.is_enabled=true) OR (items.is_deleted=false and items.is_enabled=false) ORDER BY position
也許不同的has_many,如:
has_many :all_items, :conditions => 'items.is_deleted=false', :order => 'position', :class_name=>'item'
但這好好嘗試一下似乎工作 - 也許只是一個語法問題。
什麼是讓無論是對項目啓用狀態的最佳方法是什麼?我可以過濾我的物品是否有is_enabled爲真或假?也許就是這樣的一個方法,但它似乎最好有這樣的關係的一部分:
class Header < ActiveRecord::Base
...
def all_items
Item.where('header_id=? and is_deleted=false',self.id)
end
THX對於任何幫助