使用firefox而不是Chrome时,current_user可用

时间:2013-06-19 00:21:28

标签: ruby-on-rails devise

我在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'

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

看起来你还没有登录就访问了一个页面。如果未设置会话,则current_user将不存在,并在尝试访问其中一个属性时抛出错误,在这种情况下是用户的电子邮件。

如果您已登录,请尝试通过Devloper Tools(汉堡包图标&gt;工具&gt;开发人员工具)清除会话Cookie。并重新加载页面。