Я реализую представление модели с тремя таблицами, одна из которых объединяет таблицу.Вот таблицы:
Рецепт:
class Recipe < ActiveRecord::Base
# validates :name, :presence => true
# validates :directions, :presence => true
# has_and_belongs_to_many :ingradients
has_many :ingredients_recipes
has_many :ingredients, :through => :ingredients_recipes
accepts_nested_attributes_for :ingredients_recipes, :allow_destroy => true
end
Ингредиент:
class Ingredient < ActiveRecord::Base
# has_and_belongs_to_many :recipes
has_many :ingredients_recipes
has_many :recipes, :through => :ingredients_recipes
end
И таблица соединения между ними:
class IngredientsRecipe < ActiveRecord::Base
belongs_to :recipes
belongs_to :ingredients, :foreign_key => "ingredient_id"
delegate :name, :to => :ingredients
end
ThisКажется, работает нормально, когда я создаю новый рецепт - я могу редактировать строки рецепта, и все идет гладко.Когда я создал представление для отображения рецепта с именем ингредиента из таблицы ингредиентов, я создал делегата в таблице соединения.Однако, когда я пытаюсь использовать делегата в представлении:
<% @recipe.ingredients_recipes.each do |r| %>
<%= r.ingredient_id %> <br>
<%= r.name %>
<% end %>
я получаю следующую ошибку:
uninitialized constant IngredientsRecipe::Ingredients
Когда я удаляю строку <% = r.name%>,работает без ошибок.Я неправильно определяю делегата или что может быть причиной этого?