路由在我的应用程序中不起作用

时间:2012-03-22 14:01:49

标签: ruby-on-rails

我的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

为什么以及如何解决它?

1 个答案:

答案 0 :(得分:0)

我冒昧地说路由正在运行,但无论你在(或之前)做什么,行动都失败了。通过在操作之前明确地引发异常来检查这一点。例如:

def test_action
  raise "In test_action with #{params.to_yaml}!"
  ...
end

如果你没有看到引发异常,请确保控制器上没有一个截取它的before_filter并抛出你的错误。

一旦你确定自己正在采取行动,你就可以开始研究你真正的问题,我认为这与基于these results的mongo的使用有关。