Я создаю довольно простой сайт рецептов для изучения RoR, и я следовал руководству по началу работы, за исключением того, что я обменивался постами на рецепты и комментариями для ингредиентов.
Я полностью удалил комментарий (ингредиент) http://edgeguides.rubyonrails.org/getting_started.html#deleting-comments
теперь я получаю сообщение об ошибке
undefined method `recipe' for #
Строка, которая в частичном, вызывающем проблему, находится здесь
<%= link_to 'Delete Ingredient', [ingredient.recipe_id, ingredient],
:confirm => 'Are you sure',
:method => :delete %>
Метод контроллера (который, я думаю, не имеет никакого эффекта, но я не совсем уверен) -
def destroy
@recipe = Recipe.find(params[:recipe_id])
@ingredient = @recipe.ingredient.find(params[:id])
@ingredient.destroy
redirect_to post_path(@recipe)
end
Я использую 'recipe_id' в link_to, потому что при выводе отладки он не имеет атрибута 'recipe', но имеет атрибут recipe_id.
Выходные данные отладки:
--- !ruby/object:Ingredient
attributes:
id: 3
ingredient: testing
amount: 10
measure: "10"
description: "10"
recipe_id: 2
created_at: 2010-09-06 22:16:17.599217
updated_at: 2010-09-06 22:16:17.599217
attributes_cache: {}
changed_attributes: {}
destroyed: false
marked_for_destruction: false
new_record: false
previously_changed: {}
readonly: false
Я предполагаю, что [component.recipe_id, component] - это просто хеш переменных ??
Это верно? Я подхожу к этому не с того угла?