如何在控制器中处理额外的参数

时间:2014-03-31 07:09:31

标签: ruby-on-rails

我正在学习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

有没有更好的方法来获得我的结果?

1 个答案:

答案 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