我正在尝试创建友谊,我创建了一个名为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取自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
答案 0 :(得分:1)
也许我错了,但你为什么要“接受”成为一个集合呢?我想你希望它成为会员,因为你传递的是friend_id。如果你把它改成成员并制作路径accept_friendship_path(@friendship)
[注意单数形式的友谊],你可能会有更好的运气。除了一个附加参数,你的案例与Ruby on Rails Guides上的例子没有区别,这就是值得尝试的原因