简体   繁体   English

在Rails中设计-局部?

[英]Devise in Rails - partials?

i started using Devise for authentication in one of my Rails projects. 我开始在我的一个Rails项目中使用Devise进行身份验证。 It seems that it creates some views under the folder 'devise' but they are not partials. 似乎它在文件夹“ devise”下创建了一些视图,但它们不是局部的。 I'm wondering, what happens if i want to include login or register view in another controller ? 我想知道,如果我想在另一个控制器中包括登录或注册视图,会发生什么? It seems that it cannot be rendered from any other controllers. 似乎无法从任何其他控制器进行渲染。 How can i get a partial for login , register etc ? 我如何获得部分登录,注册等信息?

I have a folder called "menu" inside /app/views/devise/ 我在/ app / views / devise /中有一个名为“菜单”的文件夹

In there are 2 partials: 其中有2个部分:

_login_items.html.erb _login_items.html.erb

<% if user_signed_in? %>
  <li><%= link_to('Logout', destroy_user_session_path) %></li>
<% else %>
  <li><%= link_to('Login', new_user_session_path)  %></li>
<% end %>
<li>User: 
  <% if current_user %>
    <%= current_user.full_name %>
  <% else %>
    (not logged in)
  <% end %>
</li>

_registration_items.html.erb _registration_items.html.erb

<% if user_signed_in? %>
  <li><%= link_to 'Dashboard', dashboard_path %></li>
<% else %>
  <li><%= link_to 'Sign up', new_user_registration_path  %></li>
<% end %>

Then, in any of my layouts I want to include login/registration stuff, I do something like: 然后,在我想要包含登录/注册内容的任何布局中,我都执行以下操作:

<div id="header">
  <ul>
  <li>Some common nav item</li>
  <%= render 'devise/menu/login_items' %>
  </ul>
</div>

I believe I learned the method from this tutorial (which is quite good) 我相信我从本教程中学到了方法(相当不错)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM