如何添加多个回调来rolizing gem

时间:2016-05-06 12:11:26

标签: ruby-on-rails callback rolify

根据rolify gem文档。 此gem将rolify方法添加到您的User类。您还可以在User类中指定添加或删除角色的可选回调:

class User < ActiveRecord::Base
  rolify :before_add => :before_add_method

  def before_add_method(role)
    # do something before it gets added
  end
end

rolify方法接受以下回调选项:

before_add
after_add
before_remove
after_remove

也支持Mongoid回调并以相同的方式工作。

当我添加多个回调来进行rolify时,它只适用于最后一个 我的代码

class User < ActiveRecord::Base
  rolify :before_add => :before_add_method
  rolify :before_remove => :before_remove_method

  private

  def before_add_method(role)
  #to do
  end
  def before_remove_method(role)
  #to do
  end
end

只调用before_remove_method方法。 有什么建议我们如何添加多个回调来rolizing gem?

1 个答案:

答案 0 :(得分:6)

我找到了解决方案。 实际上我们需要传递分隔的每个回调,如下面的

rolify :before_add => :before_add_method, :before_remove => :before_remove_method