2016-02-25 57 views
2
  • 我有2個型號。 line_itemaccount
  • line_item屬於account
  • account有一列is_active

我正在尋找一種方式來寫一個Rails範圍,找到所有line_items,他們的帳戶is_active = true基於模型母屬性的導軌範圍

喜歡的東西

LineItem.should_display 

回答

1

編輯

class LineItem < ActiveRecord::Base 
    scope :should_display, -> { joins(:account).where(accounts: {is_active: true}) } 
end 

這產生與添加以下class met相同的結果在你的LineItem模型中。

def self.should_display 
    joins(:account).where(accounts: {is_active: true}) 
end 

我認爲你可以找到Rails的更多信息,用於指導活動記錄查詢:http://guides.rubyonrails.org/active_record_querying.html

+0

我不知道,當談到'scopes' HTTP更背景下如何提供://guides.rubyonrails .org/active_record_querying.html#作用域 – Deekor

+0

@Deekor,我不熟悉rails的這個方面。我編輯了我的響應以符合用於範圍界定的rails語法,但是,正如您鏈接到的rails指南中所述,它會產生與我之前發佈的結果相同的結果。 – John

+0

是否使用範圍優先於jusing類方法? – Matthias