调用具有相同类名的控制器不同的模块

时间:2013-02-11 11:05:04

标签: ruby-on-rails ruby routes

在我的应用程序的控制器中,我有两个不同的文件夹。在文件夹内,我有两个名字相同的控制器,如下所示:

/controller/a/xyz_controller.rb    
/controller/b/xyz_controller.rb

以上控制器都包含不同的模块名称。模块名称“ /controller/a/xyz_controller.rb ”是“ a ”,模块名称为“ / controller / b /xyz_controller.rb “是” b “。

我的应用名称是“ a ”。在routes.rb里面,我有这样的东西:

get "reports/update_notes"=>"b::xyz#function"

但默认情况下它会调用“ a ”的“功能”。

如何通过routes.rb调用“ b ”控制器的功能?

1 个答案:

答案 0 :(得分:0)

http://guides.rubyonrails.org/routing.html

match "reports/update_notes" => "xyz#function", :via => :get, :module => 'b'

可能是最透明的,但get也应该以相同的方式工作。如果您希望模块名称作为模式的一部分,则需要使用path-style而不是class-style:

get "reports/update_notes" => "b/xyz#function"