Ruby on rails 友谊被取消、谢绝

Ruby on rails 友谊被取消、谢绝,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,我正试图建立一个友谊系统,大致如下链接:如何在社交网络应用程序的Rails3中实现友谊模型?。不过有点欠缺。我能够创建关系,但我不确定如何执行以下操作:取消、拒绝、接受 因此,假设我尝试取消关系,我在挂起上执行以下操作,调用我执行以下操作的操作: <% @customer.pending_friends.each do |pf| %> <%= link_to pf.incomplete_name, cancel_friendships_path(:friend_id =&g

我正试图建立一个友谊系统,大致如下链接:如何在社交网络应用程序的Rails3中实现友谊模型?。不过有点欠缺。我能够创建关系,但我不确定如何执行以下操作:取消、拒绝、接受

因此,假设我尝试取消关系,我在挂起上执行以下操作,调用我执行以下操作的操作:

<% @customer.pending_friends.each do |pf| %>
  <%= link_to pf.incomplete_name, cancel_friendships_path(:friend_id => pf), :method => :post  %><br />
<% end %>
这是我的分手函数

  # Delete a friendship or cancel a pending request.
  def self.breakup(customer, friend)
    transaction do
      destroy(find_by_customer_id_and_friend_id(customer, friend))
      destroy(find_by_customer_id_and_friend_id(friend, customer))
    end
  end
然而,当点击取消链接时,我得到了一个无路由错误的提示。我做错了什么

这是我的要求

route.rb

resources :friendships do
    collection do
      get 'cancel'
      get 'decline'
    end
  end
  resources :friendships
耙道

          cancel_friendships GET    /friendships/cancel(.:format)                        friendships#cancel
         decline_friendships GET    /friendships/decline(.:format)                       friendships#decline
                             GET    /friendships(.:format)                               friendships#index
                             POST   /friendships(.:format)                               friendships#create
                             GET    /friendships/new(.:format)                           friendships#new
                             GET    /friendships/:id/edit(.:format)                      friendships#edit
                             GET    /friendships/:id(.:format)                           friendships#show
                             PUT    /friendships/:id(.:format)                           friendships#update
                             DELETE /friendships/:id(.:format)                           friendships#destroy

/********************************************************/


                 friendships GET    /friendships(.:format)                               friendships#index
                             POST   /friendships(.:format)                               friendships#create
              new_friendship GET    /friendships/new(.:format)                           friendships#new
             edit_friendship GET    /friendships/:id/edit(.:format)                      friendships#edit
                  friendship GET    /friendships/:id(.:format)                           friendships#show
                             PUT    /friendships/:id(.:format)                           friendships#update
                             DELETE /friendships/:id(.:format)                           friendships#destroy

问题在于,在您的路线中,您有:

get 'cancel'
但您的取消链接正在执行post请求,而不是get:

<%= link_to ..., ..., :method => :post %>
在你看来:

<%= link_to pf.incomplete_name, cancel_friendships_path(:friend_id => pf), :method => :delete %>
pf),:方法=>:删除%>

您的代码可能有其他问题,但这是您必须解决的一件事。

您可以发布您的
路由.rb
rake路由的输出吗?
delete 'cancel'
<%= link_to pf.incomplete_name, cancel_friendships_path(:friend_id => pf), :method => :delete %>