Rails 3 Active Record初始化搜索链

时间:2010-08-31 21:23:28

标签: ruby-on-rails

我有一个搜索功能,可以在Rails 3应用程序中执行基本过滤(使用新方法链接)。过滤使用可选参数,如下所示:

class User < ActiveRecord::Base

  def self.search(params = {})
    users = User.?

    users = users.where(:sin => params[:sin]) if params[:sin]
    ...
    users = users.where("name LIKE :q", :q => "%params[:q]%") if params[:q]
  end

end

我不确定如何设置默认用户以包含所有用户。如果没有指定参数,我希望搜索功能返回所有记录,否则过滤。有任何想法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

class User < ActiveRecord::Base

  def self.search(params = {})
    users = User.scoped

    users = users.where(:sin => params[:sin]) if params[:sin]
    ...
    users = users.where("name LIKE :q", :q => "%params[:q]%") if params[:q]
  end

end