Hey guys. I'm having some trouble with a route spec. In routes.rb , I
have:
map.connect 'foods/search/:name', :controller => :foods, :action =>
:search
foods_controller_spec.rb has: http://codepad.org/dg3FERKw
Unfortunately, that fails: http://codepad.org/lck4r1S0
After reading the rspec-rails 1.2.0 upgrade notes (http://tr.im/K1zx), I
haven't been able to figure out what I'm doing wrong. Any hints?
Thanks!
Nick
PS: I'm using 1.2.9 and Rails 2.3.4 .
on 2010-01-11 05:58
on 2010-01-11 07:40
Nick Hoffman wrote: > Hey guys. I'm having some trouble with a route spec. In routes.rb , I > have: > map.connect 'foods/search/:name', :controller => :foods, :action => > :search > > foods_controller_spec.rb has: http://codepad.org/dg3FERKw > Unfortunately, that fails: http://codepad.org/lck4r1S0 > > After reading the rspec-rails 1.2.0 upgrade notes (http://tr.im/K1zx), I > haven't been able to figure out what I'm doing wrong. Any hints? > > Thanks! > Nick > > PS: I'm using 1.2.9 and Rails 2.3.4 . Hi Nick, You need to add quotes while writing in routs.rb file. So your route will be define as : map.connect 'foods/search/:name', :controller => 'foods', :action => 'search' Now try running the code again.You will see it pass.
on 2010-01-11 07:56
Amit Kulkarni wrote: > Nick Hoffman wrote: >> Hey guys. I'm having some trouble with a route spec. In routes.rb , I >> have: >> map.connect 'foods/search/:name', :controller => :foods, :action => >> :search >> >> foods_controller_spec.rb has: http://codepad.org/dg3FERKw >> Unfortunately, that fails: http://codepad.org/lck4r1S0 >> >> After reading the rspec-rails 1.2.0 upgrade notes (http://tr.im/K1zx), I >> haven't been able to figure out what I'm doing wrong. Any hints? >> >> Thanks! >> Nick >> >> PS: I'm using 1.2.9 and Rails 2.3.4 . > Hi Nick, > You need to add quotes while writing in routs.rb file. > So your route will be define as : > map.connect 'foods/search/:name', :controller => 'foods', :action => > 'search' > Now try running the code again.You will see it pass. Thanks for the suggestion, Amit. I changed the symbols to strings. Unfortunately, the same error is still occurring: http://codepad.org/lck4r1S0
on 2010-01-11 14:52
On Sun, Jan 10, 2010 at 10:58 PM, Nick Hoffman <lists@ruby-forum.com>
wrote:
>
I'd recommend using the route_to matcher that was added in 1.2.9
instead.
http://codepad.org/fLcxyA9N
http://rspec.rubyforge.org/rspec-rails/1.2.9/classes/Spec/Rails/Matchers.html#M000029
It's more reliable, and aligns better with the rspec matchers API.
Cheers,
David
on 2010-01-12 06:22
David Chelimsky wrote: > I'd recommend using the route_to matcher that was added in 1.2.9 > instead. > > http://codepad.org/fLcxyA9N > http://rspec.rubyforge.org/rspec-rails/1.2.9/classes/Spec/Rails/Matchers.html#M000029 > > It's more reliable, and aligns better with the rspec matchers API. > > Cheers, > David Thanks for that, David. I updated my spec (http://codepad.org/F828X7Fg). For some reason though, it's still failing: http://codepad.org/s65Ckubc Just in case, this is what I have in routes.rb: http://codepad.org/rJfIhbM6 There must be some tiny detail that I'm missing here...
on 2010-01-12 08:07
On 1/11/10 9:22 PM, Nick Hoffman wrote: >> Cheers, >> David >> > Thanks for that, David. I updated my spec (http://codepad.org/F828X7Fg). > For some reason though, it's still failing: http://codepad.org/s65Ckubc > > Just in case, this is what I have in routes.rb: > http://codepad.org/rJfIhbM6 > > There must be some tiny detail that I'm missing here... > Yes, there must. I think you've tried to twice define the route, and the test shows you which one actually is being used. I'll suggest commenting out one of those routes at a time, and see whether the new test results are illuminating. Randy
on 2010-01-12 18:25
Randy Harmon wrote: > On 1/11/10 9:22 PM, Nick Hoffman wrote: >>> Cheers, >>> David >>> >> Thanks for that, David. I updated my spec (http://codepad.org/F828X7Fg). >> For some reason though, it's still failing: http://codepad.org/s65Ckubc >> >> Just in case, this is what I have in routes.rb: >> http://codepad.org/rJfIhbM6 >> >> There must be some tiny detail that I'm missing here... >> > Yes, there must. I think you've tried to twice define the route, and > the test shows you which one actually is being used. I'll suggest > commenting out one of those routes at a time, and see whether the new > test results are illuminating. > > Randy I swapped the order of the 2 lines in routes.rb to this: map.connect 'foods/search/:name', :controller => 'foods', :action => 'search' map.resources :foods, :collection => {:search => :get} and the spec passes now. Thanks, guys!
on 2010-01-12 18:35
By the way, does this spec:
{:get => '/path'}.should route_to(...)
make this spec redundant?:
params_from(:get, '/path').should == {...}
They read the same, but it feels like they each check one end of the
route's translation.
on 2010-01-13 15:38
On Tue, Jan 12, 2010 at 11:35 AM, Nick Hoffman <lists@ruby-forum.com> wrote: > By the way, does this spec: > {:get => '/path'}.should route_to(...) > make this spec redundant?: > params_from(:get, '/path').should == {...} > Yes - route_to checks both sides of the translation.
on 2010-01-13 17:20
David Chelimsky wrote: > On Tue, Jan 12, 2010 at 11:35 AM, Nick Hoffman <lists@ruby-forum.com> > wrote: > >> By the way, does this spec: >> {:get => '/path'}.should route_to(...) >> make this spec redundant?: >> params_from(:get, '/path').should == {...} >> > > Yes - route_to checks both sides of the translation. Great, thanks for that, David! And thanks again for all of your sweat and blood with RSpec and RSpec-Rails!
on 2010-01-13 17:30
On Wed, Jan 13, 2010 at 10:20 AM, Nick Hoffman <lists@ruby-forum.com> wrote: > > Yes - route_to checks both sides of the translation. > > Great, thanks for that, David! Thank Randy Harmon for this one. It was he who recognized and solved the problems with params_from by adding the route_to matcher. > And thanks again for all of your sweat > and blood with RSpec and RSpec-Rails! > It's a labor of love, but you're welcome :)
on 2010-01-13 18:57
David Chelimsky wrote: > On Wed, Jan 13, 2010 at 10:20 AM, Nick Hoffman <lists@ruby-forum.com> > wrote: > >> > Yes - route_to checks both sides of the translation. >> >> Great, thanks for that, David! > > > Thank Randy Harmon for this one. It was he who recognized and solved > the > problems with params_from by adding the route_to matcher. Whoops, you're right. Thanks, Randy!
on 2010-01-24 04:24
Hey guys. I have two different paths that lead to the same controller and action: map.connect 'foods/search/:name', :controller => 'foods', :action => 'search' map.food ':name', :controller => 'foods', :action => 'search' Unfortunately, the spec for the second route fails because #route_to finds and uses the first route when generating the path for :controller => 'foods', :action => 'search', :name => 'almonds' routes.rb: http://codepad.org/CjKRynr5 specs: http://codepad.org/838oV3mW Is there a solution to this problem? Thanks, Nick
on 2010-01-24 19:43
I guess the distinction is that you generate food_path()'s based on
existing food names, and search comes from users - but you don't have a
distinct landing page for each food, hence no need for resource-based
routing for foods.
You could define a :show action in your controller, which simply calls
the 'search' action.
def show
search
end
Then they'll have different controller-actions and different paths, yet
the implementations would be identical. And the specs can describe them
distinctly.
I'd be curious if there are other ways to do this.
Randy
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.