Alias_method в ActiveRecord:: Base приводит к NameError
У меня есть модель, наследующая непосредственно из ActiveResource::Base
, и я пытаюсь запустить alias_method
для большинства столбцов в таблице записей, но результатом является NameError:
NameError: undefined метод address_line_1' for class
LeadImport:: Base '
Но я могу получить доступ к атрибуту:
LeadImport::Base.new.address_line_1 #=> nil (not error)
Мой класс имеет столбец таблицы с именем address_line_1
, поэтому я не вижу проблемы.
class LeadImport::Base < ActiveRecord::Base
alias_method :address_1, :address_line_1
end
: Ruby 1.8.7, Rails 2.3.8
Ответы
Ответ 1
Согласно сайту, который я нашел, вместо этого вы должны использовать alias_attribute:
Проблема заключается в том, что ActiveRecord не создает методы доступа на ходу до тех пор, пока соединение с базой данных не будет жить, и он проанализировал схема таблицы. Это долгое время после загрузки класса.
class LeadImport::Base < ActiveRecord::Base
alias_attribute :address_1, :address_line_1
end