【发布时间】:2013-02-21 10:40:28
【问题描述】:
我已经尝试了几个小时了。我对 Ruby 和 Rails 还很陌生。
在我的 devise.html.erb 文件中
<div class="container">
<%= render :partial => 'layouts/header' if user_signed_in? %>
</div>
以上工作正常。如果用户已经登录,那么他们会看到我页面顶部的标题, 如果他们没有登录,他们就看不到它。
但我需要(因为用户必须在下一页输入地址):
<div class="container">
<%= render :partial => 'layouts/header' if current_user.registration_complete? %>
当我重新启动我的应用程序时,我收到错误消息:
NoMethodError in Devise/registrations#new
我在我的项目其他地方的 user.rb 中定义了registration_complete(我的项目的其他部分可以毫无问题地识别):
#Determines whether user completed his profile on registration or not
def registration_complete?
self.address.present?
end
我应该把这段代码放在其他地方吗,以便在我的 devise.html.erb 中识别它?
【问题讨论】:
-
向我们提供 NoMethodError 的完整错误。就像它一样,我们看不到它来自哪里(尽管我假设它来自对
registration_complete?的调用@ -
NoMethodError... 什么?什么方法不可用? (我猜它在抱怨current_user)
标签: ruby-on-rails ruby variables private public