« rails でモデルを全文検索 | メイン | Capistrano でデプロイ時に依存ライブラリをインストール »

rails で 画像認証 captcha

[rails_plugin] [rails] [ruby] [captcha] [RMagick]

validates_captchaは、rails で、画像認証 captcha ができるようになるプラグインです。
RMagickに依存していています。

インストール。

script/plugin install http://svn.2750flesk.com/plugins/trunk/validates_captcha

で、次に、設定ファイルと、必要ディレクトリを用意します。以下のコマンドを実行すればOK。


script/generate captcha config
script/generate captcha image_directory
script/generate captcha store_directory

config/captcha.yml で、ディレクトリは変えられますが、その場合は自分で mkdir しましょう。

viewには以下のように記述。


  <% c = prepare_captcha :type => :image -%>
  <%= captcha_hidden_field c, 'my_super_model' %>
  <%= captcha_image_tag c %>
  <%= captcha_label 'my_super_model', 'Type in the text from the image above' %>
  <%= captcha_text_field 'my_super_model' %>


モデルで認証する場合は、以下のように記述。
コントローラーで認証する場合は、記述の必要なし。


  class MySuperModel < ActiveRecord::Base
    validates_captcha
  end


コントローラーで認証する場合は、以下のように記述。
captcha_valid? メソッドを使う。


  def save
    supermodel = MySuperModel.find(params[:id])
    supermodel.attributes = params[:my_super_model]

    if captcha_valid?(params[:my_super_model][:captcha_id], params[:my_super_model][:captcha_validation])
      supermodel.save
    else
      flash[:error] = "Are you sure you're human?"
      redirect_or_something
    end
  end

質問で認証するなんて事もできるようなので、READMEを読んでみましょう。

トラックバック

このエントリーのトラックバックURL:
http://i-am.web777.net/mt/mt-tb.cgi/30

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)