【问题标题】:acts_as_taggable_on tag link conditional on context以上下文为条件的acts_as_taggable_on 标记链接
【发布时间】:2016-08-03 23:57:28
【问题描述】:

我正在使用acts_as_taggable_on 来标记帖子和用户个人资料。标签记录与 taggable_type 帖子或个人资料以及上下文标签和兴趣一起正确保存。 Acts_as_taggable_on 将<%= render post.tags %> 和 发送到views/acts_as_taggable_on/tags/_tag.html.erb,其中自述文件建议链接到<%= 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 次“兴趣”和 10 次打印“标签”个人资料和帖子。我想要的只是当前实例的上下文。

我也很高兴听到是否有其他方法可以做到这一点(即,链接到 users/tagged/tag 以仅返回带有“tag”标签的个人资料和 /tagged/tag 以仅返回带有“tag”标签的帖子',等等),它看起来应该很简单。

【问题讨论】:

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


    【解决方案1】:

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

        <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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-12
      • 1970-01-01
      相关资源
      最近更新 更多