On Fri, Feb 22, 2008 at 8:10 AM, Maurício Linhares
<[EMAIL PROTECTED]> wrote:
> Using the "path" method the spec passes, but i don't use the path
> method on my controller. First, here's my controller code:
>
> def create
> @static_page = @event.static_pages.build(params[:static_page])
>
> respond_to do |format|
> if @static_page.save
> flash[:notice] = 'Page was successfully created.'
> format.html { redirect_to(:action => 'show', :id =>
> @static_page.permalink ) } ## thats what i'm testing agains
> format.xml { render :xml => @static_page, :status =>
> :created, :location => @static_page }
> else
> format.html { render :action => "new" }
> format.xml { render :xml => @static_page.errors, :status =>
> :unprocessable_entity }
> end
> end
> end
>
> And here is the spec:
>
>
> it 'Should redirect to the new page' do
> do_post
> response.should be_redirect
> response.should redirect_to( page_path( :action => 'show', :id
> => @static_page.permalink ) ) ## this one, with the page_path goes
> fine
>
> response.should redirect_to( :action => 'show', :id =>
> @static_page.permalink ) ## this one, without the page_path doesn't
> work
> end
>
> It seems that the redirect_to matcher doesn't recognize the current
> controller.
Ah. I missed that the initial example was missing the controller
because I was focused on the error message, which is obviously a red
herring.
Try adding the controller to the hash:
esponse.should redirect_to( :controller => 'static_pages', :action =>
'show', :id => @static_page.permalink )
If that works, then please submit a bug report to the tracker (that
redirect_to does not work with action + id unless you specify the
controller).
Thanks,
David
>
> And here goes the full backtrace:
>
>
> ActionController::MethodNotAllowed in 'StaticPagesController Handling
> POST /pages With successful save Should redirect to the new page'
> Only get, put, and delete requests are allowed.
>
> /usr/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/routing.rb:1439:in
> `recognize_path'
>
> /home/mauricio/workspace/antares/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/redirect_to.rb:43:in
> `path_hash'
>
> /home/mauricio/workspace/antares/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/redirect_to.rb:38:in
> `hash_from_url'
>
> /home/mauricio/workspace/antares/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/redirect_to.rb:26:in
> `actual_hash'
>
> /home/mauricio/workspace/antares/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/redirect_to.rb:34:in
> `actual_redirect_to_valid_route'
>
> /home/mauricio/workspace/antares/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/redirect_to.rb:18:in
> `matches?'
>
> /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/expectations/handler.rb:19:in
> `handle_matcher'
>
> /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/expectations/extensions/object.rb:34:in
> `should'
> ./spec/controllers/static_pages_controller_spec.rb:119:
>
> /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/example/example_methods.rb:78:in
> `instance_eval'
>
> /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/example/example_methods.rb:78:in
> `run_with_description_capturing'
>
> /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/example/example_methods.rb:19:in
> `execute'
> /usr/lib/ruby/1.8/timeout.rb:48:in `timeout'
>
> /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/example/example_methods.rb:16:in
> `execute'
>
> /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/example/example_group_methods.rb:292:in
> `execute_examples'
>
> /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/example/example_group_methods.rb:291:in
> `each'
>
> /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/example/example_group_methods.rb:291:in
> `execute_examples'
>
> /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/example/example_group_methods.rb:121:in
> `run'
>
> /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:22:in
> `run'
>
> /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:21:in
> `each'
>
> /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:21:in
> `run'
>
> /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/runner/options.rb:90:in
> `run_examples'
>
> /home/mauricio/workspace/antares/vendor/plugins/rspec/lib/spec/runner/command_line.rb:19:in
> `run'
> script/spec:4:
>
>
>
>
> On Fri, Feb 22, 2008 at 11:00 AM, David Chelimsky <[EMAIL PROTECTED]> wrote:
> > On Fri, Feb 22, 2008 at 7:50 AM, Maurício Linhares
> > <[EMAIL PROTECTED]> wrote:
> > > Hello guys,
> > >
> > > I have the following spec:
> > >
> > > describe 'With successful save' do
> > >
> > > it 'Should redirect to the new page' do
> > > do_post
> > > response.should be_redirect
> > > response.should redirect_to( :action => 'show', :id =>
> > > @static_page.permalink ) ## this is the line 118
> > > end
> > >
> > > end
> > >
> > > And when I try to run it it gives me the following error:
> > >
> > > 1)
> > > ActionController::MethodNotAllowed in 'StaticPagesController Handling
> > > POST /pages With successful save Should redirect to the new page'
> > > Only get, put, and delete requests are allowed.
> > > ./spec/controllers/static_pages_controller_spec.rb:118:
> > > script/spec:4:
> > >
> > > So, the response is a redirect (the "response.should be_redirect"
> > > passes) but when i try to be sure that it redirected to the right page
> > > it throws this weird error to me. Any ideas about what I've done
> > > wrong?
> >
> > Can you post the full backtrace?
> >
> > script/spec ./spec/controllers/static_pages_controller_spec.rb -b
> >
> >
> > >
> > > I'm using RSpec 1.1.3 and Rails 2.0.2.
> > >
> > > --
> > > Maurício Linhares
> > > http://alinhavado.wordpress.com/ (pt-br) |
> > > http://codeshooter.wordpress.com/ (en)
> > > João Pessoa, PB, +55 83 8867-7208
> > > _______________________________________________
> > > rspec-users mailing list
> > > [email protected]
> > > http://rubyforge.org/mailman/listinfo/rspec-users
> > >
> > _______________________________________________
> > rspec-users mailing list
> > [email protected]
> > http://rubyforge.org/mailman/listinfo/rspec-users
> >
>
>
>
> --
>
>
> Maurício Linhares
> http://alinhavado.wordpress.com/ (pt-br) |
> http://codeshooter.wordpress.com/ (en)
> João Pessoa, PB, +55 83 8867-7208
> _______________________________________________
> rspec-users mailing list
> [email protected]
> http://rubyforge.org/mailman/listinfo/rspec-users
>
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users