Hi all,
I really have a bad problem. I can't make named resource paths to work.
If I use this:
def test_can_show
get :show, :party_id => @bob.id, :id => @address.id
assert_select
"\#address_contact_route_#{@address.id}_line1_edit[url=?]",
address_path(@bob, @address, :txt)
end
I get a big bang error:
1) Error:
test_can_show(AddressContactRoutesControllerTest::PartyWithAddressTest):
NoMethodError: You have a nil object when you didn't expect it!
The error occurred while evaluating nil.to_sym
/home/francois/src/xlsuite.org/config/../vendor/rails/activerecord/lib/../../activesupport/lib/active_support/core_ext/hash/keys.rb:27:in
`symbolize_keys'
/home/francois/src/xlsuite.org/config/../vendor/rails/activerecord/lib/../../activesupport/lib/active_support/inflector.rb:250:in
`inject'
/home/francois/src/xlsuite.org/config/../vendor/rails/activerecord/lib/../../activesupport/lib/active_support/core_ext/hash/keys.rb:26:in
`each'
/home/francois/src/xlsuite.org/config/../vendor/rails/activerecord/lib/../../activesupport/lib/active_support/core_ext/hash/keys.rb:26:in
`inject'
/home/francois/src/xlsuite.org/config/../vendor/rails/activerecord/lib/../../activesupport/lib/active_support/core_ext/hash/keys.rb:26:in
`symbolize_keys'
/home/francois/src/xlsuite.org/config/../vendor/rails/actionpack/lib/action_controller/url_rewriter.rb:95:in
`rewrite_path'
/home/francois/src/xlsuite.org/config/../vendor/rails/actionpack/lib/action_controller/url_rewriter.rb:69:in
`rewrite'
/home/francois/src/xlsuite.org/config/../vendor/rails/actionpack/lib/action_controller/base.rb:522:in
`url_for'
(eval):19:in `address_path'
/home/francois/src/xlsuite.org/config/../vendor/rails/actionpack/lib/action_controller/test_process.rb:451:in
`send'
/home/francois/src/xlsuite.org/config/../vendor/rails/actionpack/lib/action_controller/test_process.rb:451:in
`method_missing'
./test/functional/address_contact_routes_controller_test.rb:47:in
`test_can_show'
My route is properly defined in routes:
map.resources :parties, :path_prefix => "/admin" do |parties|
parties.resources :addresses, :controller =>
"address_contact_routes"
end
So, what's my error ? Can anyone spot it ?
Thanks !
--
François Beausoleil
http://blog.teksol.info/
http://piston.rubyforge.org/
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
On 14-Mar-07, at 11:32 AM, François Beausoleil wrote:> Hi all, > > I really have a bad problem. I can''t make named resource paths to > work. > > If I use this: > def test_can_show > get :show, :party_id => @bob.id, :id => @address.id > assert_select "\#address_contact_route_#{@address.id}_line1_edit > [url=?]", > address_path(@bob, @address, :txt) > end >> (eval):19:in `address_path'' > /home/francois/src/xlsuite.org/config/../vendor/rails/ > actionpack/lib/action_controller/test_process.rb:451:in > `send'' > /home/francois/src/xlsuite.org/config/../vendor/rails/ > actionpack/lib/action_controller/test_process.rb:451:in > `method_missing'' > ./test/functional/address_contact_routes_controller_test.rb:47:in > `test_can_show'' > > My route is properly defined in routes: > map.resources :parties, :path_prefix => "/admin" do |parties| > parties.resources :addresses, :controller => > "address_contact_routes" > end > > So, what''s my error ? Can anyone spot it ?hey François (welcome back from vacation), I''ve seen that with multiple params to the url helpers - I''ve solved it by identifying the required params with a symbol. so address_path(:address_id => @address, @bob, :txt) # is :txt the respond_to format? this is the general solution, but you may have to add symbols to other params. cheers, Jodi --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hello Jodi, 2007/3/14, Jodi Showers <jodi@nnovation.ca>:> I've seen that with multiple params to the url helpers - I've solved > it by identifying the required params with a symbol. > > so address_path(:address_id => @address, @bob, :txt) # is :txt the > respond_to format? > > this is the general solution, but you may have to add symbols to > other params.Thanks for your response. In fact, I found my solution for a slightly related problem. You can get the gory details on my blog: http://blog.teksol.info/articles/2007/03/14/named-resources-with-name-prefixes The solution was to use the correct named route: formatted_address_path(@address, @bob, :txt) is the route to use. Thanks for your time, Jodi. -- François Beausoleil http://blog.teksol.info/ http://piston.rubyforge.org/ --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---