2011-08-30 4 views
0

Как преобразовать следующий код Rails 2 в область Rails 3, я пытаюсь удалить .merge (: условия) и полностью перемещаться в область Rails 3 activerecord.Как преобразовать хэширование Rails 2 в Rails 3?

class Customer < ActiveRecord::Base 
    def self.find_invoice_by_customer(customer_address, opts={}) 
    invoice = Customer.find(opts.merge(:conditions => {:address => customer_address })) 
    end 
end 

Customer.find_invoice_by_customer(@address, :condition => ["customer_name = ?", @customer.name]) 
+0

У меня есть параметр opt = {} в моем методе, который я соединяю с моим текущим вызовом, пройденный opt может быть чем-то другим, кроме by_address. – rubies

ответ

1

Вы можете использовать объемы и новые методы поиска приковать них:

class Customer < ActiveRecord::Base  
    scope :by_address, lambda {|address| {:conditions => {:address => address }} 
end 

Customer.by_address(@address).where("customer_name = ?", @customer.name)

ли эта помощь? Я рекомендую вам ознакомиться с документацией и Railscast about Active Record.

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