Rails 3 路由寻找错误的控制器

发布于 2024-11-07 00:58:27 字数 786 浏览 0 评论 0原文

首先,我在 config/route.rb 中有这条路

get 'inbox/index' => 'inbox#index'

由然后我运行了 rake paths,路由被正确生成:

inbox_index GET  /inbox/index(.:format) {:action=>"index", :controller=>"inbox"}

问题是当我尝试从浏览器获取页面时(http://localhost:3000 /inbox/index),出现错误消息:

ArgumentError in InboxesController#index
wrong number of arguments (2 for 0)

应用程序跟踪中没有任何内容,并且在环境转储中生成了正确的控制器:

action_controller.instance: #<InboxController:0x7fbde79fb5a8 ...

为什么rails 尝试调用 InboxesController

顺便说一句,我在同一个应用程序中有另一条路线可以完美地工作:

match "search" => 'search#search', :as => 'search', :via => [:get, :post]

我不知道如何隔离这个问题,请给我一个提示。

First I had this route in config/route.rb

get 'inbox/index' => 'inbox#index'

Then I ran rake routes, the route was correctly generated:

inbox_index GET  /inbox/index(.:format) {:action=>"index", :controller=>"inbox"}

Problem is when I tried to get the page from the browser (http://localhost:3000/inbox/index), there's an error message:

ArgumentError in InboxesController#index
wrong number of arguments (2 for 0)

There is nothing in the application trace, and the right controller is generated in the env dump:

action_controller.instance: #<InboxController:0x7fbde79fb5a8 ...

Why rails tried to call InboxesController?

By the way, I have another route in the same application which works perfectly:

match "search" => 'search#search', :as => 'search', :via => [:get, :post]

I don't know how to isolate this problem, please give me a hint.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

流年里的时光 2024-11-14 00:58:27

最后我知道发生了什么事。

我定义了一个方法 InboxController#send,Rails 引入的元编程已被破坏。

该错误消息与情况完全无关。

Finally I found out what happened.

I defined a method InboxController#send, and the metaprogramming introduced by Rails had been broken.

The error message is totally irrelevant to the situation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文