どうやら私はどこにも助けが見つからないという独特の状況にあるようです。サインアップ プロセスを拡張して、データベースに追加のモデルを作成しようとしています。私がやりたいことの基本的な流れは次のとおりです。
- ユーザーは電子メール/パスワードでサインアップします (他のモデル値とともに)
- システムは「ユーザー」モデルを作成します
- システムは「プロファイル」モデルを作成します
- システムは「会社」モデルを作成します
- システムは「アカウント」モデルを作成します
最大の課題は、私が Devise を使用していて、Rspec でこの機能をテストする方法が分からないことです。これは、単に「サインアップ」メソッドをテストしようとしている私の簡単なビューです (これは機能しません:
describe "New Users" do
describe "signing up" do
it "should create a new user" do
lambda do
post :sign_up, :user => Factory.attributes_for(:user)
response.should be_success
end.should change(User, :count).by(1)
end
end
end
次のエラーが表示されます。
1) UsersController New Users signing up should create a new user
Failure/Error: post :sign_up, :user => Factory.attributes_for(:user)
ActionController::RoutingError:
No route matches {:user=>{:email=>"test@user.com", :password=>"secret", :password_confirmation=>"secret"}, :controller=>"users", :action=>"sign_up"}
# ./spec/controllers/users_controller_spec.rb:14:in `block (5 levels) in <top (required)>'
# ./spec/controllers/users_controller_spec.rb:13:in `block (4 levels) in <top (required)>'
Devise ルートは、ユーザーのサインアップ ルートを次のように構成します。
new_user_registration GET /users/sign_up(.:format) {:action=>"new", :controller=>"devise/registrations"}
私はこれで髪を引っ張ってきましたが、この分野では何の助けも見つからないようです. おそらく私は間違った方法でアプローチしていますが、最初のサインアップフォームでユーザーのアカウントを設定するすべての側面 (つまり、会社のデフォルト、プロファイル設定など) を構成したいと考えています。まず、サインアップ プロセスをテストする方法を理解する必要があります。
前もって感謝します!