【问题标题】:Rails route helpers for map.connectmap.connect 的 Rails 路由助手
【发布时间】:2009-08-28 10:43:16
【问题描述】:

在我当前的 rails 应用程序中,我定义了一堆命名路由来处理静态内容,如下所示:

map.with_options :controller => 'static_content' do |static|
  static.imprint    'imprint',    :action => 'imprint'
  static.menu1      'menu1',      :action => 'menu1'
  static.menu1_sub1 'menu1/sub1', :action => 'menu1_sub1'
  static.menu1_sub2 'menu1/sub2', :action => 'menu1_sub2'
  static.menu2      'menu2',      :action => 'menu2'
  ...
end

现在我想重构这条非常恶心的路由,使其具有如下内容:

map.connect 'menu1/:action', :controller => 'static/menu1'
map.connect 'menu2/:action', :controller => 'static/menu2'
...

我创建了控制器命名空间静态并映射命名空间中所有这些控制器的操作。但是现在 - 当然 - 所有像 menu1_sub2_path 这样有用的路线助手都停止工作了,我将不得不更改它们。

嘘!将路径助手的所有用法重构为丑陋的:controller-:action-style?

所以我的问题是,是否有人看到了解决这个问题的好方法。有没有办法定义这些路径助手 - 或者它们的创建方式?或者更聪明的方式来做那些讨厌的映射?

感谢您的帮助,

【问题讨论】:

    标签: ruby-on-rails routes


    【解决方案1】:
    map.with_options :controller => 'static_content' do |static|
      static.page ':action'
    end
    

    然后调用它:

    page_path(:imprint)
    

    【讨论】:

      猜你喜欢
      • 2014-03-29
      • 1970-01-01
      • 2012-04-02
      • 2016-08-05
      • 1970-01-01
      • 2015-06-30
      • 1970-01-01
      • 2013-09-28
      • 1970-01-01
      相关资源
      最近更新 更多