Ruby on rails 3 铁路3号线线路问题
我有一个像这样的haml链接Ruby on rails 3 铁路3号线线路问题,ruby-on-rails-3,rest,routes,Ruby On Rails 3,Rest,Routes,我有一个像这样的haml链接 =link_to "accept", friendship, :method => :put =link_to "Add Friend", friendships_path(:friend_id => provider), :method => :post 我正在尝试映射“put”以使用控制器中的“update”操作 在我这样的路线上 resources :friendships do collection do get :cre
=link_to "accept", friendship, :method => :put
=link_to "Add Friend", friendships_path(:friend_id => provider), :method => :post
我正在尝试映射“put”以使用控制器中的“update”操作
在我这样的路线上
resources :friendships do
collection do
get :create
delete :destroy
put :update
end
end
因此,如果我使用方法“get”,它应该会得到一个新的朋友(这很有效),如果我删除,那么使用“destroy”操作,如果我使用“update”操作
我想我是完全错了
我的“创建”好友链接如下所示
=link_to "accept", friendship, :method => :put
=link_to "Add Friend", friendships_path(:friend_id => provider), :method => :post
这是我所有的朋友
.profile
.providers
%h1 Other Users
- @providers.each do |provider|
%p
=provider.login
=link_to "Add Friend", friendships_path(:friend_id => provider), :method =>
:post
.friends
%h1 Friends
- @friends.each do |friendship|
%p
=friendship.friend.login
=link_to "remove", friendship, :method => :delete
=link_to "message", memos_path(:other_user => friendship.friend)
.friends-out
%h1 Friends Out
- @friends_out.each do |friendship|
%p
=friendship.friend.login
=link_to "remove", friendship, :method => :delete
.friends-in
%h1 Friends In
- @friends_in.each do |friendship|
%p
=friendship.friend.login
=link_to "remove", friendship, :method => :delete
=link_to "accept", friendship, :method => :put
是的,你几乎做对了,但你做得不对。你应该这样做:
resources :friendships
=link_to "accept", friendship_path(@friendship), :method => :put
不多不少,就这样。因为在使用资源时,默认情况下,它会将put协议映射到更新操作,将删除协议映射到销毁操作,并将POST协议映射到创建操作。因为当数据库以某种方式更改(创建、更新、销毁)时,不应使用GET
当您使用link_to helper时,可以这样尝试:
resources :friendships
=link_to "accept", friendship_path(@friendship), :method => :put
编辑:
还要确保包含默认javascript以处理指定的发布方法:
<%= javascript_include_tag :defaults %>
<%= csrf_meta_tag %>
:put%>将起作用,因为我认为友谊是同一类的对象。(简而言之,我认为他在运行一个循环)是的,我在一个朋友循环中,我很抱歉我遗漏了这个细节是的,如果友谊是一个例子,它当然会起作用。当我映射它(添加朋友)时,我得到了这个错误。你是怎么说的?未知操作无法找到FriendsControllers的操作“索引”单击上述链接时是否会发生这种情况?