在 routes.rb 中正确设置/匹配路线
Properly set / match routes in routes.rb
我在我的应用程序中实现了基本标记,因此可以按标签过滤帖子。
我的routes.rb中有一条路线
get 'tags/:tag', to: 'links#index', as: :tag
但是,我想要一个 URL /tags 来列出所有标签(触发标签控制器中的索引操作)。
我已经设置了这条路线
get 'tags' => 'tags#index'
在我的标签视图中我有 index.html.erb
<% @tags.each do |tag| %>
<div class="row">
<%= link_to tag.name, tag_path(tag) %>
</div>
<% end %>
问题是 <%= link_to tag.name, tag_path(tag) %>
导致 /tags/:id
而不是 /tags/:tag
,因此不起作用。
如何正确设置?
假设您正在尝试匹配 tags/tag-name
之类的内容,其中 tag-name
是 Tags
上的 id
以外的字段;你可以使用 friendlyId.
将以下 to_param
方法添加到您的 Tag
模型:
def to_param
name
end
我在我的应用程序中实现了基本标记,因此可以按标签过滤帖子。
我的routes.rb中有一条路线
get 'tags/:tag', to: 'links#index', as: :tag
但是,我想要一个 URL /tags 来列出所有标签(触发标签控制器中的索引操作)。
我已经设置了这条路线
get 'tags' => 'tags#index'
在我的标签视图中我有 index.html.erb
<% @tags.each do |tag| %>
<div class="row">
<%= link_to tag.name, tag_path(tag) %>
</div>
<% end %>
问题是 <%= link_to tag.name, tag_path(tag) %>
导致 /tags/:id
而不是 /tags/:tag
,因此不起作用。
如何正确设置?
假设您正在尝试匹配 tags/tag-name
之类的内容,其中 tag-name
是 Tags
上的 id
以外的字段;你可以使用 friendlyId.
将以下 to_param
方法添加到您的 Tag
模型:
def to_param
name
end