Я уже некоторое время борется с проблемой в моем приложении Rails. У меня есть три класса, Товары, Товары и услуги Категория и Товары и услуги Категория. MerchandiseMerchandiseCategory используется для создания отношения «многие ко многим» между двумя другими.has_many отношения в Ruby on Rails 5.0
Когда я выполнить следующие команды в консоли Rails, я получаю соответствующие результаты:
m = MerchandiseMerchandiseCategory.first
# Returns an object that relates the first Merchandise
# with the first Merchandise Category
m.merchandise_category
# Returns the corresponding merchandise_category
m.merchandise_category.merchandise_merchandise_categories.first
# Returns an array of all corresponding MerchandiseMerchandiseCategy ids
m.merchandise
# Returns the corresponding merchandise
m.merchandise.merchandise_merchandise_categories.first
# LoadError: Unable to autoload constant
# Merchandise::MerchandiseMerchandiseCategory, expected
# /home/bjarki/Development/h2/app/models/merchandise/merchandise_merchandise_category.rb
# to define it
Таким образом, все отношения работают, кроме отношения один-ко-многим между Товароведение и MerchandiseMerchandiseCategory. Я пробовал все, что мог придумать, включая удаление модели Merchandise и ее воссоздание.
Этих классов я работаю с
merchandise.rb
# branch_id: uuid
# name: string
# price: integer
class Merchandise < ApplicationRecord
has_many :merchandise_merchandise_categories
has_many :categories, class_name: :MerchandiseCategory,
through: :merchandise_merchandise_categories
belongs_to :branch
end
merchandise_category.rb
# branch_id: uuid
# name : string
class MerchandiseCategory < ApplicationRecord
has_many :merchandise_merchandise_categories
has_many :merchandises, through: :merchandise_merchandise_categories
belongs_to :branch
end
merchandise_merchandise_category.rb
# merchandise_id: uuid
# merchandise_category_id: uuid
class MerchandiseMerchandiseCategory < ApplicationRecord
belongs_to :merchandise
belongs_to :merchandise_category
end
Это заставило меня сходить с ума в течение последних дней. Я был бы очень благодарен, если бы кто-нибудь мог указать мне в правильном направлении.
Я знаю, это не проблематично отношения, но что, если вы изменили в 'Merchandise' отношения к этому: 'has_many: категории, через:: merchandise_merchandise_categories, источник:: merchandise_category'. Еще один выстрел в воздухе, вы попробовали «пружинную остановку»? Иногда у меня были проблемы с рельсами, использующими старые изменения моих моделей/контроллеров. –
Спасибо за совет, но не работал.Я нашел решение, хотя, опубликую его ниже :-) – bjarkig82