rails scope基于模型父属性

时间:2016-02-25 22:07:35

标签: ruby-on-rails ruby-on-rails-4

  • 我有2个型号。 line_itemaccount
  • line_item属于account
  • account有一列is_active

我正在寻找一种方法来编写Rails范围来查找其帐户line_items

中的所有is_active = true

这样的东西
LineItem.should_display

1 个答案:

答案 0 :(得分:4)

修改

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

这会产生与在LineItem模型中添加以下类方法相同的结果。

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

我认为您可以在Rails指南中找到有关Active Record Querying的更多信息:http://guides.rubyonrails.org/active_record_querying.html