我正在学习Rails,而且我现在对控制器有很好的了解。 顺便说一句,我总是遇到一些问题,而且我不知道解决问题的最佳方法。
其中一个是搜索:我在我的网站上搜索,我必须重新排序相关性和日期的结果。
我的搜索控制器
def show
@query = params[:query]
@contents = Content.published.search_by_text(@query).page(params[:page]).per(12)
end
这是默认搜索。我还必须实现"数据顺序"搜索,我想做这样的事情:
def show
@query = params[:query]
@contents = Content.published.search_by_text(@query).page(params[:page]).per(12)
if params[:order]
@contents = Content.published.search_by_text(@query).reorder("created_at DESC").page(params[:page]).per(12)
end
end
有没有更好的方法来获得我的结果?
答案 0 :(得分:2)
幸运的是,rails允许我们在使用Active Record(Rails的ORM)时链接调用
这是一种可能性:
def show
@query = params[:query]
@contents = Content.published.search_by_text(@query)
@contents = @contents.reorder("created_at DESC") if params[:order]
@contents = @contents.page(params[:page]).per(12)
end