2014-09-23 40 views
0

例如,如果我想查找标签为“Music”和“Beatles”的所有帖子,我该怎么做呢?而且,我如何在我的路线中添加这样的帖子列表?注意:我使用acts_as_taggable gem来制作我的标签。如何使用acts_as_taggable_on查找包含多个标签的帖子(Rails)

+0

你有没有使用像ransack一样的宝石? – user1854802 2014-09-23 00:43:00

+0

我需要它的目的是像“link_to”这些特定标签的职位。 (虽然ransack绝对看起来像我可以在未来使用:)) – user3543006 2014-09-23 01:11:10

回答

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)

在视图然后显示你喜欢的。

相关问题