【问题标题】:Rails 3 | Routing : How to rename resource title now?导轨 3 |路由:现在如何重命名资源标题?
【发布时间】:2011-01-01 15:58:12
【问题描述】:

通常我有 MenuItems 模型并试图使 '/menu_items(/:id(:/some_action))' URL 看起来像 '/menu(/:id(:/some_action))'

在 Rails 2.3.5 中是

map.resources :menu_items, :as => :menu, :path_names => { :new => 'add' }

现在在 Rails 3.0.3 中,我可以使用这段巨大的代码来处理它

  resources :menu_items, :path_names => { :new => 'add' }
  match 'menu/' => 'menu_items#index', :as => :menu
  match 'menu/add' => 'menu_items#new', :as => :new_menu
  match 'menu/:id' => 'menu_items#show', :as => :show_menu
  match 'menu/:id/edit' => 'menu_items#edit', :as => :edit_menu

但由于代码量很大,它看起来不正确。 似乎:现在就像 2nd Rails 的 map.some_name 一样工作。

有任何帮助/建议/指南吗? (谢谢)

【问题讨论】:

    标签: ruby-on-rails routing ruby-on-rails-3


    【解决方案1】:

    http://guides.rubyonrails.org/routing.html#customizing-resourceful-routes

    resources :menu, :controller => "menu_items", :path_names => { :new => "add" }
    

    输出与您所追求的非常接近:

    menu_index GET    /menu(.:format)             {:controller=>"menu_items", :action=>"index"}
               POST   /menu(.:format)             {:controller=>"menu_items", :action=>"create"}
      new_menu GET    /menu/add(.:format)         {:controller=>"menu_items", :action=>"new"}
     edit_menu GET    /menu/:id/edit(.:format)    {:controller=>"menu_items", :action=>"edit"}
          menu GET    /menu/:id(.:format)         {:controller=>"menu_items", :action=>"show"}
               PUT    /menu/:id(.:format)         {:controller=>"menu_items", :action=>"update"}
               DELETE /menu/:id(.:format)         {:controller=>"menu_items", :action=>"destroy"}
    

    【讨论】:

    • 谢谢!错过它。这正是我所需要的。
    • 是否可以将 as: 名称也更改为新路径名?
    【解决方案2】:

    另一种方式

    resources :menu, :as => :menu_items, :controller => :menu_items
    

    这种方法的优点是现有的辅助方法(例如 menu_items_path)仍然有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-30
      相关资源
      最近更新 更多