2012-01-24 3 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 

Я googled и искал в 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? Я тестировал рельсы 3 приложения. http://m.onkey.org/active-record-query-interface – Gazler

Смежные вопросы