我有一个使用 Rolify、Devise、CanCan 和 Tabulous 的应用程序。
在我的tabulous.rb
文件中,我希望能够Visibility?
通过调用来定义选项卡:
(current_user.has_role? :admin)
所以config.tabs
do 看起来像这样:
# TAB NAME | DISPLAY TEXT | PATH | VISIBILE? | ENABLED?
[ :admin_tab, 'ADMIN' , ingredients_path , (current_user.has_role? :admin) , true ],
除了当我进入/users/sign_in
路径时,大多数页面都可以正常工作;它返回以下错误:
NoMethodError in Devise/sessions#new
Showing /Users/[myname]/Projects/[project-name]/app/views/layouts/application.html.haml where line #24 raised:
undefined method `has_role?' for nil:NilClass
第 24 行只是指向文件中的=tabs
调用applications.html
。
我知道问题是/users/sign_in
无法访问该.has_role?
功能。
我怎样才能使tabulous.rb
文件可以使用它?