2012-01-24 76 views
0

我有這樣的方法形成一個Rails 2.3.4應用:的Rails 3 - 合併查詢選項

def self.find_all_colored(query, options={}) 
    finder_options = {:conditions => "color = #{query}"}.merge(options) 
    Car.find(:all, finder_options) 
end 

與我可以這樣做:

Car.find_all_colored("red", :limit => 5) 

,但我有一個非常糟糕的時間,試圖要得到這在Rails的3.1.1工作,現在我可以讓它工作,但沒有.merge(選項),如果我添加的那部分:

def self.find_all_colored(query, options={}) 
    Car.where("color = #{query}").merge(options) 
end 

我得到這個錯誤:

undefined method `default_scoped?' for {:limit=>5}:Hash 

我已經google搜索並在stackoverflow.com搜索,但沒有運氣......謝謝!

回答

1

嘗試以下操作:

def self.find_all_colored(query, options={}) 
    self.all({:conditions => {:color => query}}.merge(options)) 
end 
+0

非常感謝,其完美! – miligraf

+0

對不起Gazler,它在查看生成的SQL時實際上不起作用,選項未包括在內。 – miligraf

+0

你在Rails 3.1嗎?我正在測試一個rails 3應用程序。 http://m.onkey.org/active-record-query-interface – Gazler