what is the devise_mapping variable and how can I include it?

前端 未结 4 743
栀梦
栀梦 2021-02-01 21:19

I\'m trying to implement authentication with Devise in my Rails application (Rails 2.3.8, Devise 1.0.7, mongrel running on Windows Vista). But I\'m getting the following error:<

4条回答
  •  面向向阳花
    2021-02-01 22:05

    I realize this question is kind of old, but I think I figured out why you can't just render that partial. The partial you're trying to render is the partial for the links that show up below the sign_in/sign_up form.

    If you'd like to add those links to your application, this page on the Devise Wiki will show you how to do it, and it involves creating your own partial(s).

    EDIT (2019-04-01): Copying the information from the Devise wiki page here for persistence.

    How To: Add sign_in, sign_out, and sign_up links to your layout template

    First add sign_in/out links, so the appropriate one will show up depending on whether the user is _already_ signed in:
    # views/devise/menu/_login_items.html.erb
    <% if user_signed_in? %>
      
  • <%= link_to('Logout', destroy_user_session_path, method: :delete) %>
  • <% else %>
  • <%= link_to('Login', new_user_session_path) %>
  • <% end %>
    The method: :delete part is required if you use the default HTTP method. To change it, you will need to tell Devise this:
    # config/initializers/devise.rb
      # The default HTTP method used to sign out a resource. Default is :delete.
      config.sign_out_via = :get
    
    You can then omit method: :delete on all your sign_out links. Next come the sign_up links. Again, these can be substituted with something else useful if the user is already signed in:
    # views/devise/menu/_registration_items.html.erb
    <% if user_signed_in? %>
      
  • <%= link_to('Edit registration', edit_user_registration_path) %>
  • <% else %>
  • <%= link_to('Register', new_user_registration_path) %>
  • <% end %>
    Then use these templates in your layouts/application.html.erb, like this:
    # layouts/application.html.erb
    
      <%= render 'devise/menu/registration_items' %> <%= render 'devise/menu/login_items' %>
    <%= yield %>
    Add some menu styling to the CSS (here for a horizontal menu):
    ul.hmenu {
      list-style: none; 
      margin: 0 0 2em;
      padding: 0;
    }
    
    ul.hmenu li {
      display: inline;  
    }
    

提交回复
热议问题