ruby-on-rails - Rails 3,仅在用户登录时呈现部分

标签 ruby-on-rails ruby-on-rails-3 view devise

在 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_usernil .我可以移动 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/

相关文章:

ruby-on-rails - 如何创建一个包含两个带逗号 gem 模型的 CSV 文件?

Android无法删除按钮

ruby-on-rails - 什么 Rails 事件记录迁移数据类型用于契约(Contract)的持续时间?

ruby-on-rails - 如何在 Rails 上查找数据库迁移日志?

ruby-on-rails - ruby 无法在 .js.coffee 中的 coffeescript 之后进行 ajax 响应

ruby-on-rails-3 - Delayed::Worker.new.work_off 是否会在未来的 run_at 时间执行作业?

ruby-on-rails - 如何在 Rails 3 中创建动态根?

python - Django DetailView 动态模型

java - 为什么我们需要 Lollipop 的第四个构造函数?

ruby-on-rails - 名称错误:未初始化常量 <模型>:<列名称>