私はRailsの初心者ですが、スコープに問題があります。
私は2つのスコープを持つクラスを持っています:
class Event < ActiveRecord::Base
belongs_to :continent
belongs_to :event_type
scope :continent, lambda { |continent|
return if continent.blank?
composed_scope = self.scoped
composed_scope = composed_scope.where('continent_id IN ( ? )', continent).all
return composed_scope
}
scope :event_type, lambda { |eventType|
return if eventType.blank?
composed_scope = self.scoped
composed_scope = composed_scope.where('event_type_id IN ( ? )', eventType).all
return composed_scope
}
終わり
そして、私のコントローラーでは、この2つのスコープを同時に使用したいと思います。やった :
def filter
@event = Event.scoped
@event = @event.continent(params[:continents]) unless params[:continents].blank?
@event = @event.event_type(params[:event_type]) unless params[:event_type].blank?
respond_with(@event)
end
しかし、私は動作しません、私はこのエラーがあります:
undefined method `event_type' for #<Array:0x7f11248cca80>
これは、最初のスコープが配列を返すためです。
それを機能させるにはどうすればよいですか?
ありがとうございました !