Я строю приложение рецепт, где пользователь может просматривать рецепты, список ингредиентов, получить список покупок и т.д. и т.п.нескольких объединений в рельсах
Каждый рецепт состоит из этапов, каждый шаг имеет ингредиентов, и каждый У ингредиента есть бакалейная лавка.
я был совершенно уверен, что способ создания этих связей были через модель, так что мои модели выглядят как этот
class Recipe < ActiveRecord::Base has_many :steps, :dependent => :destroy has_many :ingredients, :through => :steps has_many :groceries, :through => :ingredients end class Step < ActiveRecord::Base belongs_to :recipe has_many :ingredients, :dependent => :destroy has_many :groceries, :through => :ingredients accepts_nested_attributes_for :ingredients end class Ingredient < ActiveRecord::Base belongs_to :step belongs_to :recipe has_one :grocery end class Grocery < ActiveRecord::Base has_and_belongs_to_many :ingredients has_and_belongs_to_many :steps, :through => :ingredients has_and_belongs_to_many :recipes, :through => :ingredients end
Я могу выводить отладочный @ recipe.steps, @ recipe.ingredients, но @recipe .groceries возвращает
uninitialized constant Recipe::Grocery
Я думаю, что это проблема с стыки, но я не понимаю, почему я должен нужно указать присоединиться к контроллеру.
Контроллер просто
def show @recipe = Recipe.find(params[:id]) respond_to do |format| format.html # show.html.erb format.xml { render :xml => @recipe } end end
Am я ищу свою ошибку в нужном месте? или я неправильно интерпретирую ошибку?
Привет Хайме, извините за задержку в ответе. Я путешествовал, когда я впервые задал этот вопрос, и не работал в течение нескольких дней. Затем, когда я наконец вернулся, я работал над другим проектом. Я только что вернулся к этому. Во всяком случае, да, вы получаете кредит, хотя я надеялся, что есть лучшее решение. Полезно знать об этих ограничениях. – pedalpete