2016-08-03 115 views
0

我正在使用acts_as_taggable_on标记帖子和用户配置文件。标记记录正在使用taggable_type发布或配置文件以及上下文标记和兴趣正确保存。 Acts_as_taggable_on将<%= render post.tags %>和<%=呈现profile.interest%>发送到views/acts_as_taggable_on/tags/_tag.html.erb,其中readme建议link_to类似<%= link_to tag.name, tag_path(tag.name) %>acts_as_taggable_on标记链接条件上下文

我想要做的是根据taggable_type或上下文更改路径 - 类似if tag.tagging.context == 'interest' link_to tag.name, profile_tag_path(tag.name)等post标签vs配置文件标签。

在相应的视图/控制器中,我可以正确地获取记录filtered by context,我只是有条件地改变链接路径。 tag.tagging.context给出无方法错误,tag.taggings.each do |tag| tag.context每次使用它时返回给定标签的所有上下文 - 即,如果在配置文件和帖子上多次使用了'interest',则打印10个'tags',打印10个'tags'。我想要的只是当前实例的上下文。

我也很高兴听到是否有另一种方式来做到这一点(即,链接到用户/标记/标签,只返回标记为'标记'和/标记/标记的配置文件,以返回标记为'标签“等),它看起来应该是非常简单的。

回答

0

在情况下,它是有用的人,我结束了遍历每个标签,像这样:

<span class="global tags"> 
     <% @post.global_list.each do |tag| %> 
     <span class="label label-default"> 
      <%= link_to tag, post_tag_path(tag) %> 
     </span> 
     <% end %> 
    </span> 

    <span class="personal tags"> 
     <% @post.personal_list.each do |tag| %> 
     <span class="label label-default"> 
      <%= link_to tag, user_tag_path(@post.user.name, tag) %> 
     </span> 
     <% end %> 
    </span>