如何使用acts_as_taggable_on(Rails)查找包含多个标签的帖子

时间:2014-09-23 00:19:06

标签: ruby-on-rails tags acts-as-taggable-on

例如,如果我想查找所有带有标签的帖子" Music"和贝塔莱斯",我该怎么做呢?而且,我如何在我的路线中列出这样的帖子列表?注意:我使用acts_as_taggable gem来制作我的标签。

1 个答案:

答案 0 :(得分:0)

来自documentation

# Find users that matches all given tags:
User.tagged_with(["awesome", "cool"], :match_all => true)

如果您遇到困难,文档中还有很多其他示例可供使用。

我不确定你的“路线中的帖子列表”是什么意思。如果您想显示已使用这些标签标记的用户(在上例中),请尝试以下操作:

# index action controller
@users = User.tagged_with(["awesome", "cool"], :match_all => true)

# index.html.erb
<% @users.each do |u| %>
  <%= u.name %>
  <%= u.whatever %>
<% end %>

修改 我认为根据您对问题的评论,您想要建立一个链接,以查看已使用指定标记标记的所有用户。在这种情况下,请在用户块下设置客户路线(在此示例中)。

resources :users do
  collection do
    get :tagged
  end
end

然后<%= link_to 'Tagged', tagged_users_path(tag1: "cool", tag2: "supernice") %>

控制器tagged操作:

@users = User.tagged_with([params[:tag1], params[:tag2]], :match_all => true)

然后在您的视图中显示您喜欢的内容。