[Хорошо ... мой первый вопрос, так что будьте нежнее.]
Я использую devise для своей аутентификации, но у меня есть собственный контроллер для расширения того, что происходит при создании пользователя. Я создаю как "пользователя", так и "агентство" во время регистрации (регистрации).
На маршрутах ...
devise_for :users, :controllers => {:registrations => "registrations"}
Мой полный контроллер ...
class RegistrationsController < Devise::RegistrationsController
def create
super # creates the @user
@agency = Agency.create! params[:agency]
@agency.users << @user
@agency.owner = @user
@user.agency = @agency
@agency.save
@user.account_admin = true
@user.save
end
end
Моя проблема в том, что я хочу настроить rspec для проверки этого кода. Кажется, код работает, но я стремлюсь к 100% охвату кода в моих спецификациях. Вот вся моя спецификация ...
require 'spec_helper'
describe RegistrationsController do
render_views
describe "POST create" do
it "creates an associated user" do
@agency = Factory.create( :agency )
@user = Factory.create( :user, :agency => @agency )
User.stub(:new).with({'name' => 'pat'}) { @user }
Agency.stub(:new).with({'name' => 'pat'}) { @agency }
post :create, :user => {'name' => 'pat'}
assigns(:user).should be(@user)
end
end
end
Но я получаю сообщение об ошибке при создании сообщения. Вот сообщение об ошибке
Could not find devise mapping for path "/users?user[name]=pat"
И это (я думаю) соответствующая строка из "рейк-маршрутов"
user_registration POST /users(.:format) {:action=>"create",:controller=>"registrations"}
Есть мысли?
погладить