0

私は友情を作ろうとしていて、acceptというカスタムアクションを作成しました。しかし、私はそれに到達することはできません。それを呼び出すたびに、アクションショーが見つかりませんでした。

ここに私のroute.rbファイルがあります

  resources :friendships do
    collection do
      delete 'cancel'
      get 'accept'
    end
  end

ここで私はそれをどのように呼ぶか

<%= link_to 'Accept', accept_friendships_path(:friend_id => f) %>

accept_friendshipsは、rakeroutesコマンドから取得されました。そして、ここで私は私の受け入れコントローラーをどのように定義するか

  #Accept friendships
  def accept
    if @customer.requested_friends.include?(@friend)
      Friendship.accept(@customer, @friend)
      flash[:notice] = "Friendship Accepted"
    else
      flash[:notice] = "No Friendship request"
    end
    redirect_to root_url
  end

ここでエラー

Unknown action

The action 'show' could not be found for FriendshipsController
4

1 に答える 1

1

私は間違っているかもしれませんが、なぜ「受け入れる」をコレクションにしたいのですか?friend_idを渡しているので、メンバーにしたいと思います。メンバーに変更してパスを作成するとaccept_friendship_path(@friendship)[友情の単数形に注意]、運が良くなる可能性があります。追加の引数に加えて、あなたのケースはRuby on Railsガイドの例と変わらないので、試してみる価値があります

于 2012-09-08T18:37:26.683 に答える