【问题标题】:Calling the controllers with same class name different modules调用具有相同类名的不同模块的控制器
【发布时间】:2013-01-26 11:38:14
【问题描述】:

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

/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”的控制器函数?

【问题讨论】:

  • 我不确定这里是否有足够的信息来了解您要做什么。您能否更详细地描述一下您为什么想要这种控制器布置,因为它看起来很奇怪,以及您要解决什么问题。

标签: ruby-on-rails ruby routes


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2020-03-08
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 2020-02-22
    • 2015-03-12
    • 1970-01-01
    • 2014-10-07
    • 2018-06-13
    相关资源
    最近更新 更多