ユーザーの認証に Sorcery gem を使用しようとしていますが、登録フォームに入力した後、エラーが発生して登録ページにリダイレクトされます。ただし、コンソールからユーザーを作成することはできます。
ログファイル:
Started POST "/users" for 127.0.0.1 at 2012-01-23 13:54:12 -0500
Processing by UsersController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"Rh6R5rwLu+XchOv3ki9iATgihU8hqr84y4AcQbyKFyI=", "user"=> {"username"=>"testusername", "email"=>"testemail@email.com", "password"=>"[FILTERED]"}, "commit"=>"Register"}
[1m[35m (0.1ms)[0m SELECT 1 FROM "users" WHERE "users"."username" = 'testusername' LIMIT 1
[1m[36m (0.1ms)[0m [1mSELECT 1 FROM "users" WHERE "users"."email" = 'testemail@email.com' LIMIT 1[0m
Rendered users/new.html.erb within layouts/application (2.1ms)
Completed 200 OK in 29ms (Views: 17.1ms | ActiveRecord: 0.3ms)
users_controller.rb
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = User.new(params[:user])
if @user.save
redirect_to 'Static#index', :notice => "Thanks for registering!"
else
render :new
end
end
end
モデル/user.rb:
class User < ActiveRecord::Base
authenticates_with_sorcery!
attr_accessible :username, :email, :password
validates_presence_of :username
validates_presence_of :password, :on => :create
validates_presence_of :email
validates_length_of :password, :minimum => 7
validates_length_of :username, :minimum => 10
validates_uniqueness_of :username
validates_uniqueness_of :email
end
config/initializers/sorcery.rb:
Rails.application.config.sorcery.submodules = []
Rails.application.config.sorcery.configure do |config|
config.user_config do |user|
end
config.user_class = "User"
end
魔法の移行:
class SorceryCore < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.string :username, :null => false
t.string :email, :default => nil
t.string :crypted_password, :default => nil
t.string :salt, :default => nil
t.timestamps
end
end
def self.down
drop_table :users
end
end