ruby-on-rails - Rails 4 link_to Destroy 在入门教程中不起作用

标签 ruby-on-rails

我正在学习入门教程(创建博客),但 link_to Destroy 无法正常工作。在终端中它总是将其解释为#SHOW。

在阅读类似问题时,我了解到删除必须转换为 POST 以便浏览器解释它。这似乎并没有发生。

我在 Lynda.com Rails 类(class)中使用 Destroy 时也遇到了同样的问题,所以这让我相信这是我的开发环境中的问题。我在 MacBook Pro Lion 上使用 Rails 4、Ruby 2.00p274、MySQL、WEBrick 作为 HTTP 服务器。

在终端 session 中选择“销毁”时:

Started GET "/posts/4" for 127.0.0.1 at 2013-08-09 13:45:20 -0600
Processing by PostsController#show as HTML
  Parameters: {"id"=>"4"}
  Post Load (0.6ms)  SELECT "posts".* FROM "posts" WHERE "posts"."id" = ? LIMIT 1  [["id", "4"]]
  Rendered posts/show.html.erb within layouts/application (0.4ms)
Completed 200 OK in 13ms (Views: 8.6ms | ActiveRecord: 0.6ms)

在 ports-controller.rb 中:

def destroy
    @post = Post.find(params[:id])
    @post.destroy

    redirect_to action: :index
end

在index.html.erb中:

<% @posts.each do |post| %>
  <tr>
    <td><%= post.title %></td>
     <td><%= post.text %></td>
    <td><%= link_to 'Show', post %></td>
    <td><%= link_to 'Edit', edit_post_path(post) %></td>
    <td><%= link_to 'Destroy',  { action: :destroy, id: post.id }, method: :delete, data: { confirm: 'Are you sure?' } %></td>
  </tr>
 <% end %>

在routes.rb中

Blog::Application.routes.draw do
   resources :posts do
     resources :comments
   end
  root to: 'welcome#index'
end

最佳答案

试试这个

<%= link_to 'Destroy',  post,  method: :delete, data: { confirm: 'Are you sure?' } %>

关于ruby-on-rails - Rails 4 link_to Destroy 在入门教程中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18154916/

相关文章:

ruby-on-rails - Ruby on Rails 4、设计和个人资料页面

ruby-on-rails - 从自定义 Controller Rails 向模型插入数据

ruby-on-rails - 如何返回数组中的最新记录

ruby-on-rails - Rails 路由弃用警告

ruby-on-rails - 如何设置 Rails Angular 项目来测试 JS?

ruby-on-rails - 通过 sprockets 动态渲染一个 sass 文件

ruby-on-rails - 在 rails3 中制作时事通讯的最佳方式是什么

ruby-on-rails - rails : send mail after some time has passed

ruby-on-rails - find_or_create_by_id 的最佳方法,但如果找到记录则更新属性

ruby-on-rails - Rails 1.day.ago 将参数作为字符串?