rails routing показать вложенные ресурсы действий

да, проблема в том, что я создал вложенный ресурс следующим образом:

resources :albums do 
  resources :elements
end

и команда rake routes отображает:

album_element GET /albums/:album_id/elements/:id(.:format) elements#show

поэтому, когда я в .../альбомы/1 Я могу направиться ... .../ альбомы / 1 / elements

это запускает действие индекса контроллера элементов, просто отлично. Но если я отредактирую индекс.формат html.erb to

<%= link_to 'Show', album_element_path %>

Я получил такую ошибку:

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'

таким образом, он говорит, что маршрут не совпадает ... но на самом деле у меня есть это в моих рейках отображаются маршруты ? Что я делаю не так ?

1 ответов


вам нужно предоставить два необходимых аргумента для album_element_path:

<%= link_to 'Show', album_element_path(@album, @element) %>