私はこのリンクをたどって友情システムを構築しようとしています:ソーシャルネットワーキングアプリケーションのRails3に友情モデルを実装する方法は?しかし、少し欠けています。関係を築くことができましたが、キャンセル、拒否、承諾のアクションを実行する方法がわかりません。
したがって、保留中の関係をキャンセルして、次のアクションを呼び出すとしましょう。
<% @customer.pending_friends.each do |pf| %>
<%= link_to pf.incomplete_name, cancel_friendships_path(:friend_id => pf), :method => :post %><br />
<% end %>
ここでキャンセルのコントローラー
def cancel
@customer = current_customer
@friend = Customer.find(params[:friend_id])
if @customer.pending_friends.include?(@friend)
Friendship.breakup(@customer, @friend)
flash[:notice] = "Friendship Canceled"
else
flash[:notice] = "No Friendship request"
end
redirect_to root_url
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