【问题标题】:Rails routes entry to match any controller actionRails 路由条目以匹配任何控制器操作
【发布时间】:2014-05-12 08:07:25
【问题描述】:

我想要一个测试控制器,我可以在其中轻松添加操作并让路由器自动识别它们。我能够创建一个匹配 any 控制器操作的路由条目(示例 1),但无法弄清楚如何将其限制为测试控制器(示例 2)。

routes.rb:

# EXAMPLE 1: Match any generic controller actions (e.g. any_controller/any_action):
get ':controller/:action

# EXAMPLE 2: Match any test controller actions (e.g. test/any_action):
get 'test/:action'

#2 示例结果导致路由错误:

routing/mapper.rb:229:in `default_controller_and_action': missing :controller (ArgumentError)

【问题讨论】:

    标签: ruby-on-rails routing


    【解决方案1】:

    你可以像下面这样使用它:

    get 'test/:action', controller: :test
    

    这将创建如下路线:

     GET    /test/:action(.:format)           test#:action
    

    这将匹配任何测试控制器操作(例如 test/any_action)

    【讨论】:

      【解决方案2】:

      你应该告诉 Rails 这条路线会发生什么:

      get ':controller/:action' => "office#show"
      

      【讨论】:

      • 违背了目的-我希望它与 any 动作匹配,而不是特定动作。 (而get ':controller/:action' 本身工作正常,这是第二个失败的例子)
      • 啊,好吧,对不起,我误解了你的问题
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-01
      • 2012-06-19
      • 2011-09-25
      相关资源
      最近更新 更多