Rails Active Record: ошибка has_many (NameError: неинициализированная константа) - PullRequest
1 голос
/ 27 декабря 2011

Отредактировано: решено с

has_many :imagens, :class_name => 'Imagem', :dependent => :delete_all

Проблема, с которой я сталкиваюсь, выглядит примерно так: Rails: неинициализированная постоянная ошибка при уничтожении Active Record

Мой файл iflections содержит следующее:

inflect.plural 'imagem', 'imagens'
inflect.singular 'imagens', 'imagem'

Когда я пытаюсь получить изображения, возникает ошибка:

veiculo = Veiculo.first
veiculo.imagens #uninitialized constant Veiculo::Imagen

Я не знаю, почему это происходит

class Veiculo < ActiveRecord::Base
  has_many :caracteristicas, :dependent => :delete_all
  has_many :imagens, :dependent => :delete_all
  # more irrelevant code
end

class Imagem < ActiveRecord::Base
  belongs_to :veiculo
  # more irrelevant code, has attached file
end

1 Ответ

1 голос
/ 08 февраля 2012

У меня была такая же проблема только сейчас, и я нашел ответ: соглашения рельсов.Вы должны следовать им при создании своих моделей И при использовании в них has_many: through / own_to.

class Imagem < ActiveRecord::Base
  belongs_to :veiculo
  # more irrelevant code, has attached file
end

Это должно быть:

belongs_to :veiculos

Поскольку "veiculo" .pluralize дает нам"veiculos" (вы можете проверить это в своей консоли!).Это должно избежать необходимости: class_name, что лично мне не нравится.:)

Кроме того, в случае, если вы пропустили это (я дважды это сделал), вам нужно использовать в таблице отношений имена в единственном числе, например, assign_to: veiculo и assign_to: imagem.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...