首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的Rails web应用调用了错误的操作?

问为什么我的Rails web应用调用了错误的操作?
EN

Stack Overflow用户
提问于 2010-10-21 12:53:53
回答 2查看 829关注 0票数 1

我正在研究Ruby on Rails,我遇到了一个奇怪的bug,使用的是Rails 3.0.1和Ruby 1.8.7。使用生成的scaffold代码,当我期望调用我的“销毁”操作时,就会调用我的"Show“操作。这是代码。

routes.rb

代码语言:javascript
复制
webappdotcom::Application.routes.draw do
  resources :projects
  root :to => "home#index"
end

index.html.erb

代码语言:javascript
复制
<td><%= link_to 'Destroy', project, :confirm => 'Are you sure?', :method => :delete %></td>

在浏览器中呈现的实际HTML代码

代码语言:javascript
复制
<td><a href="/projects/12" data-confirm="Are you sure?" data-method="delete" rel="nofollow">Destroy</a></td>

单击"Destroy“链接时的服务器输出

代码语言:javascript
复制
Started GET "/projects/12" for 127.0.0.1 at Wed Oct 20 23:39:37 -0500 2010
  Processing by ProjectsController#show as HTML
  Parameters: {"id"=>"12"}
  Project Load (0.1ms)  SELECT "projects".* FROM "projects" WHERE ("projects"."id" = 12) LIMIT 1
Rendered projects/show.html.erb within layouts/application (9.0ms)
Completed 200 OK in 77ms (Views: 13.3ms | ActiveRecord: 0.1ms)

您可以看到调用了"ProjectsController#show“操作,但我希望调用"Destroy”操作。另外,我注意到浏览器没有显示确认消息“你确定吗?”都不是。你知道是什么原因造成的或者我遗漏了什么吗?

非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-21 13:01:08

这是因为Rails3改变了它在表单中使用javascript的方式。它曾经向链接添加一个onclick方法,但这与不起眼的javascript背道而驰。现在它只是设置了一些标签属性,并在另一个文件中使用javascript连接到它。

该页面的布局(可能是application.html.erb,除非您对其进行了更改)需要在标题部分包含以下行:

代码语言:javascript
复制
<%= javascript_include_tag :defaults %>

如果布局中缺少这一行,这就是问题所在。另一个可能的原因是,如果您在应用程序中添加了jQuery库,而没有添加特定于rails的jQuery库。让我知道这是如何工作的。

票数 3
EN

Stack Overflow用户

发布于 2010-10-21 13:02:13

这可能会对你link_to with :method=>:delete not working ( Rails 3 )有所帮助。尽管在那篇文章中调用的是edit。但这个解决方案也应该适用于show。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3984390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档