无法找到没有ID(删除记录)</object>的<object>

时间:2014-11-04 02:56:01

标签: ruby-on-rails

我正在构建一个非常基本的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

1 个答案:

答案 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>