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

Phillip Koebbe
2010-04-25T23:01:28Z

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