在ActiveAdmin,Rails 4中禁用Humanizer

时间:2015-06-05 17:57:39

标签: ruby-on-rails activeadmin

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

型号:

   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

但它不想按预期工作。

对此有何帮助?

提前感谢您的时间。

1 个答案:

答案 0 :(得分:1)

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

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