acts_as_taggable_on以上下文为条件的标记链接

时间:2016-08-03 23:57:28

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

我使用acts_as_taggable_on来标记帖子和用户个人资料。正在使用taggable_type帖子或个人资料以及上下文标记和兴趣正确保存标记记录。 Acts_as_taggable_on发送<%= render post.tags %>和&lt;%=呈现profile.interest%&gt; to views / acts_as_taggable_on / tags / _tag.html.erb,其中自述文件建议使用link_to,如<%= link_to tag.name, tag_path(tag.name) %>

我想要做的是根据taggable_type或上下文更改路径 - 例如if tag.tagging.context == 'interest' link_to tag.name, profile_tag_path(tag.name)等用于帖子标记和个人资料标记。

在相应的视图/控制器中,我可以正确地获取记录filtered by context,我无法有条件地更改链接路径。 tag.tagging.context给出了无方法错误,tag.taggings.each do |tag| tag.context会在每次使用时返回给定标记的所有上下文 - 即4个&#39;兴趣&#39;和10个&#39;标签&#39;如果它在个人资料和帖子上多次使用过。我唯一想要的只是当前实例的上下文。

我也很高兴听到是否有其他方法可以做到这一点(例如,链接到用户/已标记/标记以返回标记为&#39;标记&#39;和/的个人资料tagged / tag只返回用&#39; tag&#39;等标记的帖子,看起来它应该非常简单。

1 个答案:

答案 0 :(得分:0)

如果它对其他人有用,我最终会像这样迭代每个标签:

<xp:inputText id="Mask"> 
  <xp:this.converter> 
    <xp:convertMask mask="####-####-####-####" asis="true"></xp:convertMask> 
  </xp:this.converter> 
  <xp:this.validators> 
    <xp:validateConstraint> 
      <xp:this.regex><![CDATA[[0-9]{16}]]></xp:this.regex> 
    </xp:validateConstraint> 
  </xp:this.validators> 
</xp:inputText>