使用Multipart Form Rails的Captcha

时间:2014-01-06 02:04:08

标签: ruby-on-rails forms captcha

我有一个多部分表单,我最后需要一个验证码。从本质上讲,允许用户创建/更新草稿,但在完成所有操作之前不会将其提交给管理员审核。有一个验证码用于上次提交,但问题是,当我将其添加到表单时,我不能使用任何其他提交按钮,因为验证码没有填写。有没有办法解决?

我正在使用simple_captcha和Rails 3.2。

谢谢!

1 个答案:

答案 0 :(得分:0)

我之前没有使用过simple_captcha,但似乎你在每种情况下都在做@object.save_with_captcha。你有多种方法可以解决这个问题,但我想出的是:

在控制器中,验证是否填写了所有字段(仅限我猜),如果是,则使用@object.save_with_captcha保存对象,否则执行通常的@object.save不会触发验证码验证。像这样:

def create  
  @object = MyObject.new(params[:my_object])  
  if @object.has_mandatory_fields_filled?  
    @object.save_with_captcha  
  else  
    @object.save  
  end  
end  

在has_mandatory_fields_filled中?您将检查表单的所有必填字段是否为空/无等等。