我的项目中有一个帮助方法,用于评估名为'is_coach'的用户属性。以下方法适用于我的视图,并返回“true”或“false”,具体取决于当前用户是否为“coach”并登录:
class ApplicationController < ActionController::Base
def is_coach?
user_signed_in? ? current_user.is_coach : 'false'
end
protected
end
但是,当我在“简单导航”菜单中引用它时,它是未定义的:
undefined method `is_coach?'
我知道这应该继承它所在的视图可用的任何方法,这似乎是矛盾的。
#config/navigation.rb
SimpleNavigation::Configuration.run do |navigation|
navigation.selected_class = 'current'
navigation.items do |primary|
primary.item :home, 'Home', '/'
primary.item :home, 'Clients', '/clients', class: 'special', if: -> { is_coach? }
end
end
在我的视图中,以下代码调用此代码:
<%= render_navigation %>
感谢您的帮助!
答案 0 :(得分:1)
我认为应该在is_coach?
文件中定义application_helper.rb
方法,然后它随处可用。
答案 1 :(得分:0)
在rails helper
中是一个不同的文件夹,因此,您应该提供以下代码:
application.html.rb
def is_coach?
user_signed_in? ? current_user.is_coach : 'false'
end