我正在构建一个非常基本的rails应用程序,它提供一个表单,并获取用户提交的内容。
在删除操作上,我不断获取error: Couldn't find <object>
(在这种情况下,问题)而没有ID。
我理解删除操作要求params
ID
,但我不确定为什么它没有ID
。
我将字段question_id
添加到表格问题中,希望能够做到这一点。已经阅读了许多其他类似的问题,答案是没有点击。 THX提前。
<% @questions.each do |display| %>
<table>
<th>Your answer</th></br>
<tr><%= display.answer %></tr></br>
<tr><%= link_to("Delete Action Item", {:action => 'delete'}) %></tr></br>
<% end %>
</table>
<%= form_for(:question, :url => {:action => 'destroy', :id => @question.id}) do |f| %>
<p>You're deleting this action item forever - Ok?</p>
<%= submit_tag("Do it - Delete it") %>
<% end %>
class QuestionsController < ApplicationController
def index
@questions = Question.all
end
def delete
@question = Question.find(params[:id])
end
def destroy
@question = Question.find(params[:id]).destroy
flash[:notice] = "Deleted Action - Nice job"
redirect_to(:action => 'new')
end
private
def question_params
params.require(:question).permit(:answer, :question_id)
end
end
答案 0 :(得分:0)
在您创建链接的索引中,您没有将:id
指定为参数,因此delete
操作没有params[:id]
转过来:
<tr><%= link_to("Delete Action Item", {:action => 'delete'}) %></tr></br>
进入这个:
<tr><%= link_to("Delete Action Item", {:action => 'delete', :id => display.id}) %></tr></br>