在 ActiveAdmin 中禁用 Humanizer,Rails 4

Disable Humanizer in ActiveAdmin, Rails 4

我有一个简单的应用程序,用户可以在通过人工验证后进行注册。 为此,我的设置是这样的:

型号:

   include Humanizer    
   attr_accessor :bypass_humanizer
   require_human_on :create, :unless => :bypass_humanizer

查看:

  <%= f.label :humanizer_answer, @advertisement.humanizer_question %> 
  <%= f.hidden_field :humanizer_question_id %> 

至此一切正常。

我还想允许管理员用户在 ActiveAdmin 面板中注册新用户。

因为我们现在 ActiveAdmin 使用控制器操作,如果我们不覆盖它们的话。 根据 Humanizer 文档,当我想禁用人工验证时,我必须将 bypass_humanizer 设置为 true

所以我重写了这样的创建操作:

 controller do

    def create

      bypass_humanizer = true

      super
    end
  end

但它不想按预期工作。

有什么帮助吗?

提前感谢您的宝贵时间。

ActiveAdmin.register Model do
  before_create do |model|
    model.bypass_humanizer = true
  end
end

或者您可以在表单中放置一个名称为 bypass_humanizer 且值为 true 的隐藏输入。