2012-02-13 104 views
-1
class Anketum < ActiveRecord::Base 
    has_one :user 

    class << self 
    def search(params) 
     self.scope :h, :conditions => {:height => params[:height]} 
     #scope :w, :conditions => {:width => params[:width]} 
     self.h if params[:height] 
    end 

    end 
end 

我需要創建多個範圍取決於PARAMS [:XXX]目前多個範圍軌

回答

1

通過您的代碼示例來看,你一路過來工程這樣的:

# app/models/anketum.rb 
class Anketum < ActiveRecord::Base 
end 

# app/controller/some_controller.rb 
def search 
    @results = Anketum.scoped 
    [:width, :height, :any, :other, :searchable, :attribute].each do |key| 
    @results.where(key => params[key]) if params[key].present? 
    end 
end 

你順便說一下,模型不應該訪問params散列。

+0

原因不起作用......奇怪的'SELECT「anketa」。* FROM「anketa」' – 2012-02-13 17:07:15

+0

你的db表也稱爲「anketa」?如果不是,你的設置有些問題。 – coreyward 2012-02-13 18:21:26

+0

你在哪個Rails版本上?我假設你使用'scope'而不是'named_scope'。 – coreyward 2012-02-13 18:22:13