Yeah the problem is, that I created a nested resource like this:
resources :albums do
resources :elements
end
and the rake routes command displays:
album_element GET /albums/:album_id/elements/:id(.:format) elements#show
So when I am at .../albums/1 I can head for .../albums/1/elements
This starts the index action of the elements controller, just fine. But if I edit the index.html.erb to
<%= link_to 'Show', album_element_path %>
I got an error like this:
Started GET "/albums/1/elements" for 176.221.47.67 at Tue Oct 09 14:25:39 +0200 2012
Processing by ElementsController#index as HTML
Parameters: {"album_id"=>"1"}
Rendered elements/index.html.erb within layouts/application (9.2ms)
Completed 500 Internal Server Error in 123ms
ActionController::RoutingError (No route matches {:controller=>"elements", :action=>"show"}):
app/views/elements/index.html.erb:29:in `_app_views_elements_index_html_erb___13604879__168097178'
app/views/elements/index.html.erb:18:in `each'
app/views/elements/index.html.erb:18:in `_app_views_elements_index_html_erb___13604879__168097178'
app/controllers/elements_controller.rb:7:in `index'
So it says that no route matches ... but I actually have that in my rake routes displayed ? What am I doing wrong ?
You need to provide the two neccesary arguments for album_element_path:
<%= link_to 'Show', album_element_path(@album, @element) %>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With