单击“删除”后,rails将刷新页面但不执行任何操作

时间:2016-01-12 05:13:13

标签: ruby-on-rails ruby

我正在编写一个用于规划学校作业的rails应用程序。

单击网页上的删除按钮时,我遇到了一个问题,它只刷新了页面,但没有从页面中删除任何内容。

这是来自assignment_controller的我的destroy动作以及assignment_params。

def destroy 
    @assignment = Assignment.find(params[:id])
    @assignment.destroy

    redirect_to assignments_path
end

private

def assignment_params
    params.require(:assignment).permit(:name)
end

这是我的index.html.erb

<h1>Listing of Assignments</h1>

<% @assignment.each do |x| %>
    <h2><%= x.name %></h2>
    <%= link_to "Delete", assignments_path(@assignment),
        method: :delete,
        data: { confirm: "Are you sure?" } %>
<% end %>

我不确定问题是否与路线有关,但这里是我的routes.rb以防万一。

Rails.application.routes.draw do

devise_for :users
resources :assignments

root 'home#index'

end

谢谢!

2 个答案:

答案 0 :(得分:1)

而不是:

<%= link_to "Delete", assignments_path(@assignment),
        method: :delete,
        data: { confirm: "Are you sure?" } %>

试试这个:

<%= link_to "Delete", assignment_path(x),
        method: :delete,
        data: { confirm: "Are you sure?" } %>

您必须传递x而不是@assignment,因为您已经循环传递了它。另外,请将assignments_path更改为assignment_path

答案 1 :(得分:1)

您必须将要删除的链接更改为

<%= link_to "Delete", x, method: :delete, data: { confirm: "Are you sure?" } %>