I’m building a fairly simple recipe site to learn RoR, and I’ve been following the getting started guide, except that I’ve exchanged posts for recipes and comments for ingredients.
I got all the way to deleting a comment (ingredient) http://edgeguides.rubyonrails.org/getting_started.html#deleting-comments
now i’m getting an error
undefined method `recipe' for #
The line which in the partial which is causing the problem is here
<%= link_to 'Delete Ingredient', [ingredient.recipe_id, ingredient],
:confirm => 'Are you sure',
:method => :delete %>
The controller method (which I don’t think has any effect, but I’m not completely sure) is
def destroy
@recipe = Recipe.find(params[:recipe_id])
@ingredient = @recipe.ingredient.find(params[:id])
@ingredient.destroy
redirect_to post_path(@recipe)
end
I use ‘recipe_id’ in the link_to because when I output the debug, it doesn’t have a ‘recipe’ attribute, but has a recipe_id attribute.
The output of the debug is
--- !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
I’m assuming the [ingredient.recipe_id, ingredient] is simply a hash of the variables??
Is that correct? Am I coming at this from the wrong angle?
Shot in the dark, are your associations proper ? Kinda like:
That will give you
Hope that helps.