「アカウントの作成」ページをセットアップしたいと考えています。私が使用している宝石は次のとおりです。
- レール (3.2.3)
- simple_form (2.0.1)
- 全認証アイデンティティ
- ツイッター-ブートストラップ-レール (2.0.6)
- モンゴイド(2.2.3)
フォームは次のようになります。
= simple_form_for @identity, :url => '/auth/identity/register', :html => { :class => 'form-horizontal' } do |f|
= f.input :name, :input_html => {:name => 'name'}
= f.input :email, :input_html => {:name => 'email'}
= f.input :password, :as => 'password', :input_html => {:name => 'password'}
= f.input :password_confirmation, :label => "Confirm Password", :as => 'password', :input_html => {:name => 'password_confirmation'}
.form-actions
= f.button :submit, 'Sign Up', class: 'btn-primary'
= link_to 'Cancel', root_path, class: 'btn-danger'
対応するアイデンティティモデルは
class Identity
include Mongoid::Document
include OmniAuth::Identity::Models::Mongoid
field :name, :type => String
field :email, :type => String
field :password_digest, :type => String
validates_presence_of :name, :email
validates_uniqueness_of :email
validates_format_of :email, :with => /^[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}$/i
end
フォームのテキスト フィールドに何も入力せずに [サインアップ] をクリックすると、バリデータからのエラー メッセージがフォームに表示されず、代わりにホームページにリダイレクトされます。
明らかな何かが欠けていますか、それとも私が使用しているgemバージョンに問題があるのでしょうか? もちろん、twitter-bootstrap マークアップを使用して simple_form なしで同じフォームを実装することもできますが、この方法をお勧めします。