`

rails3 simple captcha

 
阅读更多

安装:

ruby script/plugin install git://github.com/kares/simple_captcha.git

 安装之后,跟随下面的步骤配置插件:

#### STEP 1

rails generate simple_captcha

#### STEP 2

rake db:migrate

#### STEP 3
   将下面的代码添加到 config/routes.rb :
 

 Keditor::Application.routes.draw do
      match '/simple_captcha/:action', :controller => 'simple_captcha', :as => :simple_captcha
 end

 
#### STEP 4
 配置simple_captcha e.g. in `app/config/initializers/simple_captcha.rb`

前提条件是系统安装了rmagick和相关的gem 安装rmagick
 

SimpleCaptcha.backend =  :RMagick
    SimpleCaptcha.image_options = {
        :image_color => 'white',
        :image_size => '110x30',
        :text_color => 'black',
        :text_font => 'arial',
        :text_size => 22
    } # these are the defaults

 
 添加代码到app/controllers/application.rb 

ApplicationController < ActionController::Base
     include SimpleCaptcha::ControllerValidation
end

 

添加代码到model,以user为例子,注册时要求验证码

 

class User < ActiveRecord::Base
      include SimpleCaptcha::ModelValidation
      validates_captcha :on => :create, :message => 'invalid captcha'
end
 

 

singup.html.erb注册页面加入show_simple_captcha

 

<%=form_for @user,:as=>:user, :url=>users_path, :method=>"put",:html=>{:name=>"regform",:id=>"regform"} do%>
 <li style="display:block;" class="captchadiv">
	<div class="reg_formlabel">验 证 码:</div>
	<div class="reg_element ">
	  <span class="inp_box">
	    <div class="field" id="div_simple_captcha">
<%= show_simple_captcha :object=>"user",:label=>"请输入图片中的文字",:distortion=>:high%></div>
	  </span>
	  <%if @user.errors.on(:captcha)%>
		<div style="display:block" class="reg_tips form-valid-tip-err">
			<div style="display:block;" class="error l">
			  <span class="form-valid-err-content"><%=@user.errors.on(:captcha)%></span>
			</div>
		</div>
		<%end%>
	</div>
</li>
<%end%>
 

 

默认插件不支持切换验证码,需手动添加   

 

config/routes.rb :

resources :users do 
   collection do
       get 'update_captcha'
    end
end

  users  controller:

def update_captcha
    respond_to do |format|
      format.js
    end		
end

 users view:update_captcha.rjs

page.replace_html "div_simple_captcha",show_simple_captcha(:object=>"user",:label=>"请输入图片中的文字",:distortion=>:high)

 

修改插件view的代码,加入一个链接:#{Rails.root.to_s}/vendor/plugins/simple_captcha/app/views/simple_captcha/_simple_captcha,前提要载入jquery

<div id='simple_captcha'>
  <div class='simple_captcha_image'>
    <%= @simple_captcha_options[:image] %>
  </div>
  
  <div class='simple_captcha_field'>
    <%= @simple_captcha_options[:field] %>
  </div>
  
  <div class='simple_captcha_label'>
    <%= @simple_captcha_options[:label] %>
    <a onclick="jQuery.ajax({data:'', dataType:'script', type:'post', url:'/users/update_captcha'}); return false;" href="#">换一张</a>
  </div>
</div>

 

 

 

分享到:
评论

相关推荐

    easy_captcha:验证码插件(Rails)

    基于rmagick的rails 3的简单验证码实现 经过Rails 3.2.8的测试 安装 添加到Gemfile gem 'easy_captcha' gem 'rmagick' 对于Java,您可以使用 gem 'rmagick4j' 捆绑执行后 rails g easy_captcha: install 配置 ...

    rails 3 upgrade handbook(simple樣例)

    ### Rails 3升级手册知识点详解 #### 一、Rails 3升级手册概览 本手册是一份详尽的指南,旨在帮助开发者顺利完成从旧版本Rails到Rails 3的升级过程。手册共包含近120页的内容,覆盖了升级过程中所需的所有关键信息...

    rails3教程

    ### Rails3教程知识点详解 #### 一、Rails3简介与核心原则 **Rails3**是Ruby on Rails框架的一个重要版本,它对之前的版本进行了大量的改进和优化,使其更加强大和灵活。Rails3的核心设计理念围绕着几个关键的概念...

    Rails3常用命令行命令

    Rails3 是 Ruby on Rails 框架的一个版本,它提供了一系列强大的命令行工具,使得开发者可以快速地构建和管理Web应用。在本文中,我们将深入探讨Rails3中的常用命令,帮助你更高效地进行开发工作。 首先,新建一个...

    ruby on rails 3 tutorial.pdf

    《Ruby on Rails 3 Tutorial》是一本专门为初学者设计的指南,旨在帮助读者快速掌握Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby语言的一个开源框架,它采用MVC(Model-View-...

    simple-captcha

    SimpleCaptcha2可以与Rails 3 + 4一起使用。这是流行的Rubygem simple_captcha一个分支,被遗弃了。 ##特征 零FileSystem使用率(将秘密代码移至db-store并删除了图像存储)。 提供各种图像样式。 提供三个...

    Rails 3 in Action

    《Rails 3 in Action》是2011年由Ryan Bigg撰写的一本关于Ruby on Rails框架的权威指南,专门针对当时最新的Rails 3.1版本进行了深入解析。这本书旨在帮助开发者充分利用Rails 3.1的强大功能,提升Web应用开发的效率...

    centOS Rails3环境搭建

    ### CentOS环境下Rails 3开发环境搭建详解 #### 一、准备工作与环境配置 在开始部署Rails 3开发环境之前,我们需要确保系统上已经安装了一些基本的软件包和工具。这一步骤对于后续的Ruby和Rails安装至关重要。 ##...

    Ruby-SimpleForm轻松处理Rails表单

    在Ruby on Rails框架中,构建表单是一项常见的任务,而Simple Form gem就是为了简化这一过程而设计的。Simple Form是一款强大的表单构建器,它提供了一种简洁、直观的方式来创建复杂的表单,使得开发者能更专注于...

    turbo-sprockets-rails3, 加速你的Rails 3资产.zip

    turbo-sprockets-rails3, 加速你的Rails 3资产 用于 Rails 3.2.x的涡轮链轮 通过只根据源文件的哈希来重新编译已经更改的资产,从而加快 Rails 3 rake assets:precompile的速度只编译一次以生成指纹和非打印的资产...

    ruby on rails 3

    Ruby on Rails 3 是一个基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(Model-...提供的文档如"Ruby192和Rails3.0.3的新征程.doc"和"rails3入门教程.pdf"等,将有助于深入理解这一框架及其在实际项目中的应用。

    simple-captcha2

    SimpleCaptcha2 可以与 Rails 3 + 4 一起使用。这是流行的 Rubygem simple_captcha一个分支,它被废弃了。 ##特征 零文件系统使用(秘密代码移至 db-store 并删除图像存储)。 提供各种图像样式。 提供三个...

    基于java的开发源码-Rails3消息队列系统 Sidekiq.zip

    基于java的开发源码-Rails3消息队列系统 Sidekiq.zip 基于java的开发源码-Rails3消息队列系统 Sidekiq.zip 基于java的开发源码-Rails3消息队列系统 Sidekiq.zip 基于java的开发源码-Rails3消息队列系统 Sidekiq.zip ...

    The Rails3 Way, 2nd Edition

    The Rails™ 3 Way is the only comprehensive, authoritative guide to delivering production-quality code with Rails 3. Pioneering Rails expert Obie Fernandez and a team of leading experts illuminate ...

    Ruby Rails 3 Linda

    在“Ruby Rails 3 Linda”这一主题中,我们将会深入探讨Rails 3版本的相关知识点。 1. **安装与设置**:首先,学习如何在本地环境中安装Ruby、RubyGems和Rails。Ruby版本管理器如RVM(Ruby Version Manager)或...

    Ruby on Rails 3 Tutorial

    ### Ruby on Rails 3 教程知识点解析 #### 标题与描述中的核心知识点 - **Ruby on Rails 3**:一种流行的Web开发框架,基于Ruby语言。 - **经典教材**:表明本书是学习Ruby on Rails 3的一个权威且广受好评的资源...

    Rails3 使用rake启动后台任务

    Rails3 是 Ruby on Rails 框架的一个版本,它在2010年发布,引入了许多新特性并改进了框架的性能。Rake 是 Ruby 的一个构建工具,类似于 Java 的 Ant 或者 Python 的 setup.py,它允许开发者用自然语言定义任务,并...

    Rails3消息队列系统 Sidekiq

    Rails3消息队列系统 Sidekiq

    The Rails 3 Way, 2nd Edition

    ### 关于《Rails 3 的方式》第二版的知识点总结 #### 一、书籍概述与评价 《Rails 3 的方式》(The Rails 3 Way, 2nd Edition)是一本深入探讨Ruby on Rails框架(简称Rails)的技术书籍。本书不仅涵盖了Rails 3的...

    Beginning.Rails.3

    ### 关于《Beginning Rails 3》的关键知识点 #### 一、书籍概述 《Beginning Rails 3》是由Cloves Carneiro Jr. 和 Rida Al Barazi共同编写的关于使用Ruby on Rails框架进行Web开发的入门级教程。该书旨在帮助初学...

Global site tag (gtag.js) - Google Analytics