Rails 3 - 合并查询选项

时间:2012-01-24 21:32:48

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

我有这个方法形成一个Rails 2.3.4应用程序:

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

我在stackoverflow.com上搜索并搜索但没有运气......谢谢!

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

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