Я пытался сделать это в течение нескольких часов. Я довольно новичок в 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
Я registration_complete определен в моем проекте, в user.rb (какие другие части моего проекта не имеют проблем с распознаванием) как:
#Determines whether user completed his profile on registration or not
def registration_complete?
self.address.present?
end
Есть ли где-то еще я должен поставить этот код, чтобы он был распознан в моем devise.html.erb?
Дайте полную ошибку для NoMethodError. Например, мы не можем понять, откуда оно взялось (хотя я предполагаю, что это произошло от вызова 'registration_complete? ' – Jesper
' NoMethodError' ... что? Какой метод недоступен? (Я предполагаю, что он жалуется 'current_user') – Chowlett