如何从单元格内部访问“can?”方法?

7

我在我的ruby-on-rails项目中使用cancan和cells宝石。 如何从单元格内部访问can?方法? 谢谢。

2个回答

12

我曾经不得不做过这件事。尝试一下:

class MyCell < Cell::Rails

  include CanCan::ControllerAdditions

end                                        

如果您也在使用Devise,我必须这样做:

class MyCell < Cell::Rails

  include CanCan::ControllerAdditions
  include Devise::Controllers::Helpers
  Devise::Controllers::Helpers.define_helpers(Devise::Mapping.new(:user, {}))

end                                        

#define_helpers将添加辅助方法,如current_user和user_signed_in?到单元格中。


嗨 qnm!最后的 define_helpers 部分有什么作用? - dgilperez
@dgilperez 看一下代码 - 你会发现这将devise助手 - current_user / user_signed_in?等引入到单元格中作为助手。 - qnm

4

对于那些有自定义的current_ability()方法的人(你可以在其中更改current_user方法和Ability类名称):

class OrderCell < Cell::Rails
  include CanCan::ControllerAdditions
  delegate :current_ability, :to => :controller
end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接