我在Rails应用程序中使用Rails和Devise。
在我的代码中,我尝试在layouts / _header.html.erb中使用current_user。
<% Rails.logger.debug("Time is: #{Time.now} - Current User: #{current_user}") %>
当我在我的MAC上使用Firefox运行应用程序时,这就是我在日志文件中的内容:
Time is: 2013-06-18 16:21:42 - Current User: #<User:0x007fae442cf020>
当我在我的MAC上使用Chrome运行应用程序时,这就是我在日志文件中的内容:
Time is: 2013-06-18 16:20:33 - Current User:
Rendered layouts/_promo_bar.html.erb (3.4ms)
Completed 500 Internal Server Error in 657ms
ActionView::Template::Error (undefined method `email' for nil:NilClass):
27: <div class="promo-bar-box last-right-box">
28: <div class="request-invitation-text">
29: <% Rails.logger.debug("Time is: #{Time.now} - Current User: #{current_user}") %>
30: <% reg_user = user_registered_for_event(current_user.email) %>
app/views/layouts/_promo_bar.html.erb:30:in `_app_views_layouts__promo_bar_html_erb__785786602602486184_70193263335300'
有什么想法吗?
答案 0 :(得分:1)
看起来你还没有登录就访问了一个页面。如果未设置会话,则current_user将不存在,并在尝试访问其中一个属性时抛出错误,在这种情况下是用户的电子邮件。
如果您已登录,请尝试通过Devloper Tools(汉堡包图标&gt;工具&gt;开发人员工具)清除会话Cookie。并重新加载页面。