我的events
控制器中有以下内容:
def index
@event = Event.search(params[:search]).events_by_category(params[:cat]).order(...).paginate(...)
end
在我的events
模型中,我有以下类方法:
def self.events_by_category(cat)
if cat == 0
all
elsif cat && cat != 0
where('category = ?', cat)
else
scoped
end
end
在我看来,我有一个用于搜索的标准搜索框和用于类别选择的下拉列表。该类别options_for_select
有一个包含["All Categories", 0]
在其中的数组。
我的问题是:当在下拉列表中选择所有类别时,为什么这不返回任何结果而不是所有结果。而且,当我将数组更改为["All Categories", "ALL"]
并且 if 语句if cat == "ALL"
返回它时Undefined method 'order'
?
我认为这与在控制器中将搜索和 events_by_category 串在一起有关,但是当没有选择所有类别时,搜索和类别可以很好地结合使用...
任何帮助将不胜感激!