代码之家  ›  专栏  ›  技术社区  ›  bradgonesurfing

在Rails 3 Haml视图中带装置的命名路线

  •  3
  • bradgonesurfing  · 技术社区  · 15 年前

    从Rake Routes我在我的应用程序中得到这个

                     new_admin_session GET    /admins/sign_in(.:format)                     {:controller=>"devise/sessions", :action=>"new"}
                         admin_session POST   /admins/sign_in(.:format)                     {:controller=>"devise/sessions", :action=>"create"}
                 destroy_admin_session GET    /admins/sign_out(.:format)                    {:controller=>"devise/sessions", :action=>"destroy"}
                        admin_password POST   /admins/password(.:format)                    {:controller=>"devise/passwords", :action=>"create"}
                    new_admin_password GET    /admins/password/new(.:format)                {:controller=>"devise/passwords", :action=>"new"}
                   edit_admin_password GET    /admins/password/edit(.:format)               {:controller=>"devise/passwords", :action=>"edit"}
                        admin_password PUT    /admins/password(.:format)                    {:controller=>"devise/passwords", :action=>"update"}
                    admin_registration POST   /admins(.:format)                             {:controller=>"devise/registrations", :action=>"create"}
                new_admin_registration GET    /admins/sign_up(.:format)                     {:controller=>"devise/registrations", :action=>"new"}
               edit_admin_registration GET    /admins/edit(.:format)                        {:controller=>"devise/registrations", :action=>"edit"}
                    admin_registration PUT    /admins(.:format)                             {:controller=>"devise/registrations", :action=>"update"}
                    admin_registration DELETE /admins(.:format)                             {:controller=>"devise/registrations", :action=>"destroy"}
                      new_user_session GET    /users/sign_in(.:format)                      {:controller=>"devise/sessions", :action=>"new"}
                          user_session POST   /users/sign_in(.:format)                      {:controller=>"devise/sessions", :action=>"create"}
                  destroy_user_session GET    /users/sign_out(.:format)                     {:controller=>"devise/sessions", :action=>"destroy"}
                         user_password POST   /users/password(.:format)                     {:controller=>"devise/passwords", :action=>"create"}
                     new_user_password GET    /users/password/new(.:format)                 {:controller=>"devise/passwords", :action=>"new"}
                    edit_user_password GET    /users/password/edit(.:format)                {:controller=>"devise/passwords", :action=>"edit"}
                         user_password PUT    /users/password(.:format)                     {:controller=>"devise/passwords", :action=>"update"}
                     user_registration POST   /users(.:format)                              {:controller=>"devise/registrations", :action=>"create"}
                 new_user_registration GET    /users/sign_up(.:format)                      {:controller=>"devise/registrations", :action=>"new"}
                edit_user_registration GET    /users/edit(.:format)                         {:controller=>"devise/registrations", :action=>"edit"}
                     user_registration PUT    /users(.:format)                              {:controller=>"devise/registrations", :action=>"update"}
                     user_registration DELETE /users(.:format)                              {:controller=>"devise/registrations", :action=>"destroy"}
                                  root        /(.:format)                                   {:controller=>"devise/sessions", :action=>"new"}
            change_authorization_rules GET    /authorization_rules/change(.:format)         {:controller=>"authorization_rules", :action=>"change"}
    suggest_change_authorization_rules GET    /authorization_rules/suggest_change(.:format) {:controller=>"authorization_rules", :action=>"suggest_change"}
             graph_authorization_rules GET    /authorization_rules/graph(.:format)          {:controller=>"authorization_rules", :action=>"graph"}
                   authorization_rules GET    /authorization_rules(.:format)                {:controller=>"authorization_rules", :action=>"index"}
                  authorization_usages GET    /authorization_usages(.:format)               {:controller=>"authorization_usages", :action=>"index"}
    

    在哈马尔的视野里,我知道

    %html
    %head
      %title="Devise Demo"
      = stylesheet_link_tag :all 
      = javascript_include_tag :defaults 
      = csrf_meta_tag 
    %body
      %p.notice=notice
      %p.alert=alert
      - if current_user
        = "Hello #{current_user.email}  ("
        = link_to 'Not you?', destroy_admin_session
        = ")"
    

    但我得到了错误

    undefined local variable or method `destroy_admin_session' for #<#<Class:0x7f66ce2d3610>:0x7f66ce2cd1c0>
    

    很明显,我错过了3号轨道上有名的路线

    布拉德

    3 回复  |  直到 14 年前
        1
  •  14
  •   Robert Speicher    15 年前

    关于 rake routes 第一列中显示的路径不是帮助者的名称,而是 前缀 ,因为 _url _path 变体。

    使用 destroy_admin_session_path .

        2
  •  0
  •   mohanraj    15 年前

    末尾的用户URL

        3
  •  0
  •   Jérôme Verstrynge    14 年前

    destroy_admin_session 应写为 destroy_admin_session_path