У меня уже установлен Active Admin, и теперь я пытался добавить ссылку на панель инструментов на мой взгляд.
У меня есть метод current_admin_user в моем application_controller:
def current_admin_user
return nil if user_signed_in? && !current_user.admin?
current_user
end
И мое мнение таково:
<% if current_admin_user %>
<li><%= link_to "Admin", admin_path %></li>
<% end %>
Однако я получаю сообщение об ошибке:
undefined local variable or method 'current_admin_user'
Кто-нибудь знает, как это решить?
Вместо этого поместите функцию в файл application_helpers.rb
в папку /helpers и она должна работать
def current_admin_user
return nil if user_signed_in? && !current_user.admin?
current_user
end
Альтернативой является использование user_signed_in? && current_user.admin? на ваш взгляд
<% if user_signed_in? && current_user.admin? %>
<li><%= link_to "Admin", admins_path %></li>
<% end %>
Если вы хотите использовать методы контроллера в представлениях, вы должны добавить эту строку в свой application_controller
:
helper_method :current_admin_user
Это должно работать:
<% if user_signed_in? %>
<% if current_admin_user? %>
<li><%= link_to "Admin", admin_path %></li>
<% end %>
<% end %>
Если это не удается, попробуйте:
<% if user_signed_in? %>
<% if current_user.admin? %>
<li><%= link_to "Admin", admin_path %></li>
<% end %>
<% end %>