我的routes.rb中有rails资源。我在控制器中创建了方法:
def test_action
end
并在routes.rb中添加了一行:
Test2::Application.routes.draw do
resources :todos
resources :docs
match "/todos/test_action" => "todos#test_action"
end
但是当我试图获取ulr http://localhost:3000/todos/test_action/时,我收到错误消息:
illegal ObjectId format: test_action
为什么以及如何解决它?
答案 0 :(得分:0)
我冒昧地说路由正在运行,但无论你在(或之前)做什么,行动都失败了。通过在操作之前明确地引发异常来检查这一点。例如:
def test_action
raise "In test_action with #{params.to_yaml}!"
...
end
如果你没有看到引发异常,请确保控制器上没有一个截取它的before_filter并抛出你的错误。
一旦你确定自己正在采取行动,你就可以开始研究你真正的问题,我认为这与基于these results的mongo的使用有关。