Hey all,
I find this in ruby guide:
resources :photos do
collection do
get ‘search’
end
end
It will also create the search_photos_url and search_photos_path route
helpers.
So I try to implement:
#routes
resources :core do
collection do
get ‘coreim’
get ‘corer’
end
end
#index.html.haml
= link_to ‘core’, coreim_core_path
I get undefined method coreim_core_path
Thanks for response
Phil
On Wed, Mar 30, 2011 at 10:45 AM, John M. [email protected]
wrote:
helpers.
#index.html.haml
= link_to ‘core’, coreim_core_path
I get undefined method coreim_core_path
run ‘rake routes’ on the command line to see the routes that were
created.
Excerpts from John M.'s message of Wed Mar 30 08:45:50 -0700 2011:
So I try to implement:
#routes
resources :core do
collection do
get ‘coreim’
get ‘corer’
end
end
With that routes file:
$ rake routes
coreim_core_index GET /core/coreim(.:format) {:action=>“coreim”,
:controller=>“core”}
core_index GET /core(.:format) {:action=>“index”,
:controller=>“core”}
POST /core(.:format) {:action=>“create”,
:controller=>“core”}
new_core GET /core/new(.:format) {:action=>“new”,
:controller=>“core”}
edit_core GET /core/:id/edit(.:format) {:action=>“edit”,
:controller=>“core”}
core GET /core/:id(.:format) {:action=>“show”,
:controller=>“core”}
PUT /core/:id(.:format) {:action=>“update”,
:controller=>“core”}
DELETE /core/:id(.:format) {:action=>“destroy”,
:controller=>“core”}
So you would have +coreim_core_index_path+, for example.
This rather surprised me, since I had the same expectations as you.
Further
investigation suggestions inflections are to blame.
config/routes.rb
Note that we changed the resource to a pluralized form: “cores”
instead of “core”.
resources :cores do
collection do
get ‘coreim’
get ‘corer’
end
end
$rake routes
coreim_cores GET /cores/coreim(.:format) {:action=>“coreim”,
:controller=>“cores”}
cores GET /cores(.:format) {:action=>“index”,
:controller=>“cores”}
POST /cores(.:format) {:action=>“create”,
:controller=>“cores”}
new_core GET /cores/new(.:format) {:action=>“new”,
:controller=>“cores”}
edit_core GET /cores/:id/edit(.:format) {:action=>“edit”,
:controller=>“cores”}
core GET /cores/:id(.:format) {:action=>“show”,
:controller=>“cores”}
PUT /cores/:id(.:format) {:action=>“update”,
:controller=>“cores”}
DELETE /cores/:id(.:format) {:action=>“destroy”,
:controller=>“cores”}
–
med vnlig hlsning
David J. Hamilton
Excerpts from David J. Hamilton’s message of Wed Mar 30 09:22:01 -0700
2011:
This rather surprised me, since I had the same expectations as you. Further
investigation suggestions inflections are to blame.
suggestions → suggests.
med vänlig hälsning
David J. Hamilton
Thanks for response, it outputs this:
coreim_core_index GET /core
/coreim(.:format) {:action=>“coreim”,
:controller=>“core”}
corer_core_index GET /core/corer(.:format)
{:action=>“corer”, :controller=>“core”}
So I would expect this to work:
coreim_core_path
corer_core_path
But neither does. This doesn’t work either:
coreim_core_index
corer_core_index
$rake routes
coreim_cores GET /cores/coreim(.:format) {:action=>“coreim”,
:controller=>“cores”}
cores GET /cores(.:format) {:action=>“index”,
:controller=>“cores”}
ah, thanks for response. I didnt see this message on my last response.
Phil
On Wed, Mar 30, 2011 at 11:30 AM, John M. [email protected]
wrote:
coreim_core_path
corer_core_path
But neither does. This doesn’t work either:
coreim_core_index
corer_core_index
For the record, if rake routes gives you the name coreim_core_index,
then
the named route will be coreim_core_index_path or
coreim_core_index_url…
not just coreim_core_index by itself. If you’re changing the route
names,
that may not matter. 