【发布时间】:2012-07-16 18:10:48
【问题描述】:
我有一个使用 Rolify、Devise、CanCan 和 Tabulous 的应用程序。
在我的tabulous.rb 文件中,我希望能够通过调用来定义标签的Visibility?:
(current_user.has_role? :admin)
所以config.tabs 看起来像这样:
# 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 行仅指向 applications.html 文件中的 =tabs 调用。
我知道问题在于/users/sign_in 无法访问.has_role? 函数。
我怎样才能让tabulous.rb文件可以使用它?
【问题讨论】:
标签: ruby-on-rails devise cancan