所以我有acts_as_taggable正常工作。我可以在创建新帖子时添加标签,我可以在查看帖子时看到所有标签。我想要做的是为某些标签创建一个导航链接。例如,我想要一个显示“电影”的导航链接,当我点击该链接时,我希望我创建的所有帖子都显示标签“电影”。这是我的post_controller.rb
acts_as_taggable # Alias for acts_as_taggable_on :tags
extend FriendlyId
friendly_id :title, use: :slugged
belongs_to :author
scope :most_recent, -> { order(published_at: :desc) }
scope :published, -> { where(published: true) }
scope :with_tag, -> (tag) { tagged_with(tag) if tag.present? }
scope :list_for, -> (page, tag) do
recent_paginated(page).with_tag(tag)
end
我的post.rb处理标签
{{1}}
答案 0 :(得分:2)
您可以创建导航按钮可以链接到的自定义路线。
<%= link_to "Movies, tagged_posts_path("Movies") %>
在posts_controller中,为自定义路由创建方法。自定义路线可以使用'with_tag'范围仅将标有“电影”的帖子返回到您的视图。
def tagged
@posts = Post.with_tag(params[:tag])
end
确保将新的自定义路由添加到路径文件中。
resources :posts do
collection do
get "/tagged/:tag", to: "posts#tagged", as: "tagged"
end
end