#ruby-on-rails
#ruby-on-rails
Вопрос:
У меня есть модель пользователя со столбцом superuser:boolean . Я также использую панель навигации, где я хочу иметь три разных представления в соответствии с этими условиями:
- Когда кто-то не вошел в систему
- Когда кто-то входит в систему как пользователь
-
Когда кто-то подписан как пользователь, а логическое значение для суперпользователя равно true
<% if (user_signed_in? amp;amp; user.super_user?) %> <% elsif (user_signed_in?) %> <% else %>
Я получаю сообщение об ошибке: «неопределенная локальная переменная или метод `user'»
Как я могу проверить, является ли столбец super_user пользователя true или false?
Ответ №1:
1) Похоже, вы используете Devise gem (из-за user_signed_in?
). В данном случае это current_user
помощник, который вы ищете, а не user
.
2) Вам не нужно ?
здесь current_user.super_user
— вызывается столбец super_user
, а не super_user?
.
<% if (user_signed_in? amp;amp; current_user.super_user) %>
<% elsif (user_signed_in?) %>
<% else %>
Комментарии:
1. @trickydiddy никаких проблем, не забудьте принять ответ, если это помогло вам (я знаю, что вы еще не можете ~ 10 минут) 🙂