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