我使用的是Rails 3,有一个页面可以输出数据库中的帖子列表.我希望能够从链接中删除帖子.

下面的第二个例子行得通,但第一个不行.有人知道第一个为什么行不通吗?我的观点包括:

# this link sends a "GET" request which asks for the #show function  
<%= link_to 'Delete', post, :method => :delete %>

# this link sends the proper "DELETE" request which asks for the #destroy function
<%= button_to 'Delete', post, :method => :delete %>

"我的路由"文件包含以下内容:

resources :posts 

推荐答案

确保布局中的<head>部分包括以下内容:

<%= javascript_include_tag :defaults %>
<%= csrf_meta_tag %>

在Rails 3中,删除请求是在JavaScript的帮助下处理的,以确保请求被正确发送.如果没有csrf元标记和所需的JavaScript代码,delete links将无法工作.这:defaults个JavaScript文件包括原型.js和应用程序.js.后者包含使链接工作的东西,但依赖于原型框架.

如果不想使用默认的原型JavaScript库,可以使用应用程序端口.js用于其他几个框架.例如,您可以找到jQuery one here.

不管JavaScript如何,按钮仍然可以工作,因为用button_to生成的HTML代码本身包含所有必要的信息.这就是为什么你看到按钮工作,而链接不工作.

Ruby-on-rails相关问答推荐

Ruby on rails Admin-有没有一种方法可以在成对的管理控制器类中合并、重用应用程序控制器类?

是否可以使用 Turbo 帧更新 Rails 表单输入字段值?

根据表单内的 Select 字段值渲染部分内容

使用嵌套属性时如何自动将父 ID 分配为外键?

Ruby on Rails/Activerecord 排序自引用查询?

如何保持 en.yml DRY?

Rails:关于yields

在哈姆尔与当地人进行局部渲染?

I18n 用于特定于模型的 Rails 提交按钮

如何在 YAML 中声明带有单引号和双引号的字符串?

使用 Ruby on Rails 从原始 IP 地址获取用户国家名称

rspec 共享示例与共享上下文

水豚 click_link 与 :href 匹配

Rails:仅当值存在时如何验证格式?

将图标添加到 Rails 应用程序

rails structure.sql和schema.rb有什么区别

如何检测我的代码是否在 Rails 3 的控制台中运行?

Rails 4 pgsql add_index 类型为 GIN 或 GiST

如何更改 Rails 3 控制器中视图文件的默认路径?

您可以在弹性 beantalk 环境中运行 rails 控制台或 rake 命令吗?