&tag(SimpleCaptcha); *目次 [#b5308ffc] #contents *関連ページ [#o57ba447] -[[Rails3]] -[[Rails3/問い合わせフォーム]] *参考情報 [#sf7a2fab] -[[galetahub/simple-captcha · GitHub:https://github.com/galetahub/simple-captcha]] -[[Ruby on Rails に CAPTCHA の導入|苔の生したこんな日は:http://ameblo.jp/taty-usa/entry-11474036774.html]] -[[空飛ぶエリマキトカゲの観察日記: Rails3系でコメントスパム対策、難解(難読?)画像認証をする(CAPTCHAってやつ):http://fujioka0729.blogspot.jp/2013/08/rails3captcha.html]] *概要 [#o85560cf] -お問い合わせフォームなんかのスパム対策に画像認識を行うライブラリ。 *基本 [#s36e5ae8] **ImageMgickのインストール [#ob322873] -MacPortsの場合 sudo port install ImageMagick -CentOSの場合 sudo yum install ImageMagick-devel **SimpleCaptchaのインストール [#ta377c84] -Gemfileを編集 gem "galetahub-simple_captcha", :require => "simple_captcha" -インストール bundle install --path vendor/bundle -セットアップ。必要なスクリプトとテーブル(simple_captcha_data)を生成する。 bundle exec rails generate simple_captcha bundle exec rake db:migrate bundle exec rake db:migrate RAILS_ENV=production # 必要な場合 **SimpleCaptchaを使用する [#b11c4e14] -使用するControllerでincludeする。別にApplicationControllerじゃなくてもよい。 #pre{{ ApplicationController < ActionController::Base include SimpleCaptcha::ControllerHelpers end }} -ビューを編集 <%= show_simple_captcha %> -コントローラーのactionで検証する #pre{{ if simple_captcha_valid? do this else do that end }} *トラブルシューティング [#z78a0678] **「sh: convert: command not found」とログに表示され画像が表示されない。 [#we13546c] -ImageMagickのconvertコマンドが見つからないことが原因。 -README.rdocを読むと解決方法がある。development.rbなどで以下のように指定すればよい(MacPortsの場合)。 #pre{{ SimpleCaptcha.setup do |sc| sc.image_magick_path = '/opt/local/bin' # you can check this from console by running: which convert end }} **ラベルやプレースホルダに文字が表示されない [#d81a986d] -ja.ymlを使っている場合、次のように設定。 #pre{{ ja: simple_captcha: placeholder: "Enter the word" label: "画像の文字を入力してください" }}