我正在编写一个用于规划学校作业的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
谢谢!
答案 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?" } %>