使用命名路由使用我的匹配路由格式生成简单链接



这是我写的路线:

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

相关内容

  • 没有找到相关文章

最新更新