我有一个:has_many
条的Foo。 GET Foo#index
显示所有条形图。视图看起来像这样:
<% @foos.each do |foo| %>
<% foo.bars.each do |bar| %>
<%= link_to 'Download', download_bar_path %>
<%= link_to 'New', new_bar_path( :foo => foo.id ) %>
<% end %>
<% end %>
Bars控制器和路由中有def download
:
resources :bars do
member do
get 'download'
end
end
rake routes
显示
download_bar GET /bars/:id/download(.:format) {:action=>"download", :controller=>"bars"}
和网址/bars/1/download
确实有效,但视图中的第一个链接(download_bar_path
)却没有。它说No route matches {:action=>"download", :controller=>"bars"}
。
可能是什么问题?
答案 0 :(得分:2)
<% @foos.each do |foo| %>
<% foo.bars.each do |bar| %>
<%= link_to 'Download', [:download, bar] %>
<%= link_to 'New', [:new, :bar] %>
<% end %>
<% end %>
答案 1 :(得分:1)
您没有指定要下载的栏,您需要通过更改此行来添加它
<%= link_to 'Download', download_bar_path(bar) %>