私はrailscast 270にアクセスし、ユーザー用の基本的なサインアップフォーム(このアプリケーションではplayers
と呼ばれています)を実装しました。フォームは正常に動作しますが、jsonで試して認証するとエラーが発生します。どのようにこれを修正するための任意のアイデア?Rails 3.1認証でjsonが失敗する
体とhttp://localhost:3000/players
からPOST
要求:
{
"email": "[email protected]",
"username": "jaaaack",
"password": "abc123",
"password_confirmation": "abc123"
}
表示エラー:
<h2>Form is invalid</h2>
<ul>
<li>Password digest can't be blank</li>
<li>Password can't be blank</li>
</ul>
players_controller.rb
class PlayersController < ApplicationController
def new
@player = Player.new
end
def create
@player = Player.new(params[:player])
if @player.save
redirect_to root_url, :notice => "Signed up!"
else
render "new"
end
end
end
player.rb
class Player < ActiveRecord::Base
attr_accessible :username, :email, :password, :password_confirmation
has_secure_password
validates_presence_of :password, :on => :create
validates_presence_of :email
validates_presence_of :username
validates_uniqueness_of :email
validates_uniqueness_of :username
end
routes.rbを
get "sign_up" => "players#new", :as => "sign_up"
resources :players, :only => [:create]
root :to => 'home#index'
既存のコードを使用して新しいレコードを作成するために、それに正しい情報を持っている - のおかげでクリス。私のjsonはうんざりしていた。私は '@player = Player.new(params) 'アプローチを使うことに決めました。 – Jack
これはちょうど私の人生を救った – Kathan