【问题标题】::Method => Delete Route Not Working:Method => 删除路由不工作
【发布时间】:2012-01-12 12:42:24
【问题描述】:

这个删除路径的按钮似乎以某种方式路由到我的friends#create操作:

<%= button_to "Unfriend", unfriend_path(@user), :method => :delete, :class => "btn primary", :remote => true %>

路线文件:

match 'friendships/:id', :to => 'friendships#create', :method => :post, :as => 'friendship_request'
match 'friendships/:id', :to => 'friendships#destroy', :method => :delete, :as => 'unfriend'

这是服务器日志

Started POST "/friendships/45" for 127.0.0.1 at 2012-01-11 19:56:46 -0500
  Processing by FriendshipsController#create as JS
  Parameters: {"authenticity_token"=>"UicOeyAtNuQTd1nAg8XiUtki7B5iOiDtPgJ/Wu8Z+i0=", "_"=>"", "method"=>:post, "id"=>"45"}
  User Load (0.2ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 101 LIMIT 1
  User Load (0.3ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 45 LIMIT 1
  Friendship Load (0.2ms)  SELECT "friendships".* FROM "friendships" WHERE "friendships"."user_id" = 101 AND "friendships"."friend_id" = 45 LIMIT 1
  Friendship Load (0.3ms)  SELECT "friendships".* FROM "friendships" WHERE "friendships"."user_id" = 45 AND "friendships"."friend_id" = 101 LIMIT 1
Rendered users/_invited.html.erb (0.3ms)
Rendered friendships/create.js.erb (1.5ms)

这是呈现的 HTML(带有隐藏方法删除表单)

<form method="post" action="/friendships/45" data-remote="true" class="button_to"><div><input name="_method" type="hidden" value="delete"><input action="destroy" class="btn primary" type="submit" value="Unfriend"><input name="authenticity_token" type="hidden" value="UicOeyAtNuQTd1nAg8XiUtki7B5iOiDtPgJ/Wu8Z+i0="></div></form>

【问题讨论】:

  • 所以我尝试在路由文件中切换这些路由的顺序......现在它调用了销毁操作就好了。那里有些问题,但我不知道如何修复它,以便两个命名路由都能正常工作。

标签: ruby-on-rails ruby-on-rails-3 routes


【解决方案1】:

button_to 不支持删除选项,只有 post 和 get 支持。 (来源:http://apidock.com/rails/ActionView/Helpers/UrlHelper/button_to

确保生成的表单中有一个名为_method的隐藏字段,其值为delete。

如果没有生成,您可以使用 Javascript 即时插入。

【讨论】:

  • 生成的 html 已经有这个 了。我现在一直在胡思乱想,将其更改为资源有助于删除路线,但对我的创建路线没有帮助。
猜你喜欢
  • 2021-05-17
  • 1970-01-01
  • 1970-01-01
  • 2016-12-15
  • 2022-12-21
  • 1970-01-01
  • 2016-09-06
相关资源
最近更新 更多