这是我写的路线:
Foo::Application.routes.draw do
get "home/index"
match "/ads/:category_name" => "ads#by_category"
match "/ads/:category_name/:id" => "ads#show"
resources :ads
root :to => 'home#index'
end
在我的一个共享视图中,我编写了一个显示所有类别的侧边栏元素:
<div id="category-sidebar">
<h2>Categorias</h2>
<% Category.order('name').each do |category| %>
<%= link_to category.name %>
<% end %>
</div>
这将生成:
<div id="category-sidebar">
<h2>Categorias</h2>
<a href="/ads/Aeronautica">Aeronautica</a>
<a href="/ads/Aeronautica">Agropecuaria y Campo</a>
<a href="/ads/Aeronautica">Alimentos y Bebidas</a>
<a href="/ads/Aeronautica">Animales y Mascotas</a>
<a href="/ads/Aeronautica">Arte y Antiguedades</a>
</div>
我想生成一个href
,例如:
/ads/Aeronautica
/ads/Alimentos%20y%20Bebidas
我在这里错过了什么?
使用捆绑执行耙路由查找"/ads/:category_name/:id"路径的命名路由。假设这条路线称为"类别"。然后你可以这样做(注意"_path"位):
Category.order('name').each do |category|
link_to category.name, categories_path(:id => category.id)
end