【发布时间】:2011-01-29 06:39:34
【问题描述】:
我开始在我的一个 Rails 项目中使用 Devise 进行身份验证。似乎它在“设计”文件夹下创建了一些视图,但它们不是部分视图。我想知道,如果我想在另一个控制器中包含登录或注册视图会发生什么?它似乎无法从任何其他控制器呈现。我怎样才能获得部分用于登录、注册等?
【问题讨论】:
标签: ruby-on-rails
我开始在我的一个 Rails 项目中使用 Devise 进行身份验证。似乎它在“设计”文件夹下创建了一些视图,但它们不是部分视图。我想知道,如果我想在另一个控制器中包含登录或注册视图会发生什么?它似乎无法从任何其他控制器呈现。我怎样才能获得部分用于登录、注册等?
【问题讨论】:
标签: ruby-on-rails
我在 /app/views/devise/ 中有一个名为“menu”的文件夹
里面有两个部分:
_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
<% if user_signed_in? %>
<li><%= link_to 'Dashboard', dashboard_path %></li>
<% else %>
<li><%= link_to 'Sign up', new_user_registration_path %></li>
<% end %>
然后,在我想要包含登录/注册内容的任何布局中,我会执行以下操作:
<div id="header">
<ul>
<li>Some common nav item</li>
<%= render 'devise/menu/login_items' %>
</ul>
</div>
我相信我是从this tutorial那里学到的方法(相当不错)
【讨论】: