Ruby on rails 删除数据库中的最后一条记录
我正试图删除最后一条数据库记录,但当我按下链接时,页面会刷新,我没有得到任何信息:/ 这是我的控制器:Ruby on rails 删除数据库中的最后一条记录,ruby-on-rails,erb,Ruby On Rails,Erb,我正试图删除最后一条数据库记录,但当我按下链接时,页面会刷新,我没有得到任何信息:/ 这是我的控制器: def delete @todo_items = Todo.last @todo_items.delete end &这是我的看法 <h1>Shared Todo App</h1> <p>All your todos here</p> <% @todo_items.each do |t| %> <l
def delete
@todo_items = Todo.last
@todo_items.delete
end
&这是我的看法
<h1>Shared Todo App</h1>
<p>All your todos here</p>
<% @todo_items.each do |t| %>
<li><%= t.todo_item %>
<% end %>
<%= link_to 'Delete', todo_item, confirm: 'Are you sure?', method: :delete %>
共享待办事项应用程序
你所有的待办事项都在这里
有什么想法吗?控制器动作应该是
:销毁
def destroy
@todo_items = Todo.last
@todo_items.delete
end
as Rails有7个动作,包括:新建
,显示
,编辑
,索引
,销毁
和更新
因此,将请求销毁
操作。所以,试试这个,它会起作用。首先,您的操作名称应该是销毁
,而不是删除
。默认情况下,带有method::delete
的链接将映射到名为destroy
的操作。请参阅此以了解详细信息
其次,您可能希望在destroy
操作结束时重定向到某个地方。例如,将\u重定向到根路径
,或任何合适的路径。如前所述,您的操作应称为销毁,但这不是问题所在。
如果页面只是刷新,这意味着它没有调用DELETE方法,或者您应该看到“action not found”错误,或者Rails应该运行默认的destroy方法
您的问题可能是javascript。确保已启用它,并且在application.html.erb页面上有以下导入:
<%= javascript_include_tag :all %>
或者至少是rails.js文件,当您更改默认方法时,该文件使link_to方法工作:
<%= javascript_include_tag "rails" %>
我在遵循
我将控制器更改为:
def destroy
@todo_items = Todo.last
@todo_items.destroy
end
并将我的视图的名称更改为destroy.html.erb
这似乎对我有用。我计划在这起作用后加入重定向,但当我单击“删除”时,它仍会刷新页面。控制台中也没有显示已尝试删除。所以看起来好像我的控制器代码出了问题,但我看不出问题所在:/你是否有机会禁用javascript?如果在禁用javascript的情况下在指向
的链接中使用method::delete
,请求将返回到GET
,而不是delete
。