我已经设置了所有Active Admin,现在我尝试在视图中添加指向仪表板的链接。
我的application_controller中有current_admin_user方法:
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'
任何人都知道如何解决这个问题?
答案 0 :(得分:2)
如果要在视图中使用控制器方法,则应在application_controller
中添加此行:
helper_method :current_admin_user
答案 1 :(得分:1)
这应该有效:
<% 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 %>
答案 2 :(得分:1)
将该函数放入/ helpers文件夹中的application_helpers.rb
文件中,它应该可以正常工作
def current_admin_user
return nil if user_signed_in? && !current_user.admin?
current_user
end
另一种方法是使用 if user_signed_in? &安培;&安培;您视图中的current_user.admin?
<% if user_signed_in? && current_user.admin? %>
<li><%= link_to "Admin", admins_path %></li>
<% end %>