0

我正在尝试建立友谊,并创建了一个名为接受的自定义操作。但是我无法达到它。每次我打电话给它时,我都找不到动作节目。

这是我的 route.rb 文件

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

我怎么称呼它

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

accept_friendships 取自 rake routes 命令。在这里我如何定义我的接受控制器

  #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 Guides 上的示例没有什么不同,这就是值得尝试的原因

于 2012-09-08T18:37:26.683 回答