在 Rails 3.1 应用程序上,我有一个名为 user_logged_in?
的方法。来自 Devise,我想用它来有选择地渲染部分。这是 layouts/application.html.erb 中的代码:
<% if user_logged_in? %>
<%= render :partial => "home/statusbar" %>
<% end %>
它使用来自不同 Controller 的部分。这是部分:
<div id="status_bar">
Signed in as <%= link_to current_user.name, edit_user_registration_path %>
</div>
在
current_user.name
处发生错误(未定义的方法),因为 current_user
是 nil
.我可以移动 user_logged_in?
检查部分内部,但我认为如果它在 View 中,效率会更高。您能否指导我了解最佳实践是什么,或者我如何克服未定义的方法错误?即使模板位于
if
中,Rails 也会检查模板的代码是否正常?块失败?
最佳答案
它看起来像 user_logged_in?
是哪里出了问题。如果你改成这个,它会起作用吗?
<% if current_user.present? %>
<%= render :partial => "home/statusbar" %>
<% end %>
关于ruby-on-rails - Rails 3,仅在用户登录时呈现部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6783918/