[rspec-users] Controller tests fail to parse route based on resource

Phillip Koebbe phillipkoebbe at gmail.com
Sun Apr 25 19:01:28 EDT 2010


  On 2010-04-25 5:52 PM, Marcelo de Moraes Serpa wrote:
> Hello list,
>
> I have a controller example that looks like this:
>
>     it 'Should update (PUT /users/:id)' do
>       @attributes = @user.attributes
>       @attributes[:firstname] = "Another one"
>       lambda {
>         put user_url(@user), at attributes
>         User.find(@user.id <http://user.id>).firstname == 
> @attributes[:firstname]
>         response.should redirect_to(users_path)
>       }.should_not raise_error
>     end
>
> However, this fails with the following error message
>
> ActionController::UnknownAction in 'UsersController#update on (snip)
> No action responded to /users/89/edit. Actions: (snip)
>
> I'm not sure why it is not routing PUT /users/:id to 
> UsersController#update. Any ideas?
>
> The workaround I have as of now is to:
>
> post :update, {:id => @user.id <http://user.id>, :user => 
> @attributes}, which works fine, but not RESTful.
>

What happens if you change that to

put :update, ...

?

Peace,
Phillip


More information about the rspec-users mailing list