Rails 3.2.18
Ruby 2.1.5
在我的models / event.rb中,我有:
has_many :registrants
在我的models / registrant.rb中,我有:
belongs_to :event
注册人模型中包含以下字段:
event_id
status
在我的controllers / registrants_controller.rb中,我有:
def index
@events = Event.all
那么,在我的views / events / index.html.erb中,我可以使用类似的东西:
<% @events.each do |event| %>
<% event.registrants.each do |registrant| %>
....
如何在我的模型中使用范围来限制event.registrants仅限于那些状态为“活跃”的注册人?我知道可能有其他方法可以做到这一点,但我正在努力学习如何使用范围。
答案 0 :(得分:3)
模型:
class Registrant < ActiveRecord::Base
belongs_to :event
scope :active, -> { where(status: 'active') }
end
视图:
<% @events.each do |event| %>
<% event.registrants.active.each do |registrant| %>