你能获得一个包含所有记录的可链式查询方法吗?

时间:2014-05-28 11:47:20

标签: ruby-on-rails ruby-on-rails-3

我正在编写一个控制器方法,可以选择修改查询(例如,通过对其进行排序)。

来自django背景,我通常会做类似的事情:

def method(**kwargs):
    data = Model.all() # in django, this is a QuerySet

    # chain the order if required
    if 'order' in kwargs:
        data = data.order_by(kwargs['order'])

我试图在ruby中做同样的事情:

def method
  @data = Model.all # in rails, this is an *array*

  if params.has_key? :sort then
    @data = @data.order(params[:sort])
    # also do other things, which is why this isn't a one-liner
  end

但是,.all会返回Array,因此无法做到。

我已经浏览了Active Record Where Chain Reference,但我无法找到任何会返回代表整个查询的可链接对象的内容。这可能吗?

(我之后的要求是,如果:sort不是参数,@data仍可用于需要WhereChain对象的任何地方。)

0 个答案:

没有答案