我正在尝试在rails中创建cusotm操作。我虽然它会工作,但由于某种原因,它没有看到行动已经显示。我记得在某个地方我可能要设置一些东西,但我不记得了。
这是我的路线档案
resources :friends do
collection do
delete 'cancel'
end
end
在我的佣金路线中,这会产生以下
cancel_api_v1_friends DELETE /api/v1/friends/cancel(.:format) api/v1/friends#cancel
所以当我去... api / v1 / friends / cancel.json看到它创建的api说找不到show actions。
我错过了什么吗?
这是我得到的错误
The action 'show' could not be found for Api::V1::FriendsController
我的控制器有以下方法
def cancel
...
end
答案 0 :(得分:1)
如果您在浏览器中访问/api/v1/friends/cancel.json,它将执行GET而不是DELETE并使用ID“取消”调用show方法
要正确测试,请使用像curl这样的东西。
curl -i -H "Accept: application/json" -X DELETE http://localhost:3000/api/v1/friends/cancel.json
马塔
答案 1 :(得分:0)
您可以使用RESTClient来测试它。
这是一个了不起的FireFox RESTClient Add-ons。
使用此插件,您可以使用GET,PUT,POST,DELETE等方法进行请求。
实际上你需要请求DELETE而不是GET,因为马特以前回答过。点击api/v1/friends/cancel.json
您请求GET方法。
答案 2 :(得分:0)
试试这个。改变你的路线
resources :friends do
member do
delete :cancel
end
end
您可以通过
调用此方法cancel_friend_path(friend_object)
在FriendsController中编写一个方法
def cancel
whatever you wanna do.
end