2010-08-31 42 views
0

我有一個搜索功能,在Rails 3應用程序中執行基本過濾(使用新的方法鏈接)。篩選使用可選參數,如下所示:Rails 3 Active Record初始化搜索鏈接

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
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 
+0

謝謝西蒙娜!正是我在找什麼! – 2010-09-01 05:59:53