Я строю довольно простой сайт рецептов для изучения 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, потому что, когда я вывожу debug, у него нет атрибута '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
я предполагаю [ingredient.recipe_id ингредиент] просто хэш переменных ?? Правильно ли это? Я исхожу из-за неправильного угла?
Похоже, что вы пытаетесь выполнить это «вложенная форма». Форма ингредиента внутри формы рецепта. Я бы это сделал. Если вы все еще застряли, опубликуйте свою модель для ингредиентов и рецептов. Как они связаны? – Trip