【发布时间】:2012-03-01 05:25:20
【问题描述】:
我有一个非常有趣的场景:
我指定了两个控制器,一个用于全局事件,另一个用于公司特定事件。在路由中,它是这样指定的:
resources :companies do
resources :events
end
resources: events
运行 rake routes 我可以看到正在生成的路由:
events GET /events(.:format) events#index
company_events GET /companies/:company_id/events(.:format) events#index
两条路径似乎都路由到同一个控制器(全局控制器)... 我在控制器/公司下有第二个控制器,如下所示:
class Companies::EventsController < ApplicationController
# stuff
end
无论我是否使用 company_evens_path(@company),它都不会在上面的那个控制器中路由。总是去另一个。 它曾经在 Rails 2.3 中为我工作,我目前正在使用 3.2
【问题讨论】:
-
你确定你需要一个单独的控制器吗,似乎要让它保持干燥,你应该在全局事件控制器的索引操作中抛出一个 if params[:company_id] 来只显示那些事件。
-
根据您的路线,这按预期工作。都路由到 EventsController 和 index 方法。如果您需要基于所遵循的路线的不同行为,您可以从单个控制器中完成。
标签: ruby-on-rails ruby ruby-on-rails-3