【问题标题】:How to customize (Rails) Devise routes ending with 'new', 'edit', and so on?如何自定义(Rails)设计以“new”、“edit”等结尾的路线?
【发布时间】:2012-10-17 18:52:03
【问题描述】:

这是我的 config/route.rb 的设计部​​分:

devise_for :admin_utilisateurs, :path_names => { :sign_up => 'enregistrer',
                                                 :sign_in => 'connexion',
                                                 :sign_out => 'deconnexion',
                                                 :password => 'mot_de_passe',
                                                 :unlock => 'deverouiller'},
                                :path => 'identification'

这导致以下rake routes

        new_admin_utilisateur_session GET    /identification/connexion(.:format)             devise/sessions#new
            admin_utilisateur_session POST   /identification/connexion(.:format)             devise/sessions#create
    destroy_admin_utilisateur_session DELETE /identification/deconnexion(.:format)           devise/sessions#destroy
           admin_utilisateur_password POST   /identification/mot_de_passe(.:format)          devise/passwords#create
       new_admin_utilisateur_password GET    /identification/mot_de_passe/new(.:format)      devise/passwords#new
      edit_admin_utilisateur_password GET    /identification/mot_de_passe/edit(.:format)     devise/passwords#edit
                                      PUT    /identification/mot_de_passe(.:format)          devise/passwords#update
cancel_admin_utilisateur_registration GET    /identification/cancel(.:format)                devise/registrations#cancel
       admin_utilisateur_registration POST   /identification(.:format)                       devise/registrations#create
   new_admin_utilisateur_registration GET    /identification/enregistrer(.:format)           devise/registrations#new
  edit_admin_utilisateur_registration GET    /identification/edit(.:format)                  devise/registrations#edit
                                      PUT    /identification(.:format)                       devise/registrations#update
                                      DELETE /identification(.:format)                       devise/registrations#destroy
       admin_utilisateur_confirmation POST   /identification/confirmation(.:format)          devise/confirmations#create
   new_admin_utilisateur_confirmation GET    /identification/confirmation/new(.:format)      devise/confirmations#new
                                      GET    /identification/confirmation(.:format)          devise/confirmations#show
             admin_utilisateur_unlock POST   /identification/deverouiller(.:format)          devise/unlocks#create
         new_admin_utilisateur_unlock GET    /identification/deverouiller/new(.:format)      devise/unlocks#new
                                      GET    /identification/deverouiller(.:format)          devise/unlocks#show

如何更改?例如路线:

/identification/deverouiller/new

进入

/identification/deverouiller/nouveau

如果我将:new => 'nouveau' 添加到:path_names 哈希中,那将不起作用。

非常感谢您的帮助

【问题讨论】:

    标签: devise routes ruby-on-rails-3.2 customization


    【解决方案1】:

    一种不需要使用额外 gem 的解决方案是使用带有 path_names 选项的范围:

    scope path_names: { new: 'creer', edit: 'modifier' } do
    
       devise_for :users
    
    end
    

    更多信息请参见http://guides.rubyonrails.org/routing.html#overriding-the-new-and-edit-segments

    【讨论】:

      【解决方案2】:

      看起来rails-translate-routes gem 可以帮助解决这个问题。查看 Fabio Akita 的这篇博文中的 I18n 路线 部分:Minimal I18n with Rails 3.2,了解有关如何使用 gem(与 devise 结合使用)将完整 URL 转换为本地语言的详细信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-07
        • 2021-08-17
        相关资源
        最近更新 更多