Alias_method в ActiveRecord:: Base приводит к NameError - программирование
Подтвердить что ты не робот

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

4b9b3361

Ответ 1

Согласно сайту, который я нашел, вместо этого вы должны использовать alias_attribute:

Проблема заключается в том, что ActiveRecord не создает методы доступа на ходу до тех пор, пока соединение с базой данных не будет жить, и он проанализировал схема таблицы. Это долгое время после загрузки класса.

class LeadImport::Base < ActiveRecord::Base
  alias_attribute :address_1, :address_line_1
end