显示一个字段的所有实例的控制器方法没有重复 ruby

至尊A

我正在制作一个博客,我需要在列表中显示与某种用户相关联的所有标签,并链接到具有该标签的每组帖子。我想创建一个控制器方法来在视图中调用以显示唯一标签的列表。这是我的控制器和视图。我怎样才能做到这一点?

控制器

  def index
    @manager_posts = Blog::Post.where(post_type: 'Manager').order('date DESC').limit(4)
    @tenant_posts = Blog::Post.where(post_type: 'Tenant').order('date DESC').limit(4)
    @blog_list = Blog::Post.order('date DESC').limit(4)
    @blog_posts = Blog::Post.paginate(:page => params[:page], :per_page => 5)
    @all_post = Blog::Post.all
    respond_with(@blog_posts)
  end

我目前显示标签的视图如下所示

<h3 class="title">Popular Tags</h3>
  <div class="separator-2"></div>
    <div class="tags-cloud">
       <% if @manager_posts.present? %>
          <% @manager_posts.each do |post| %>
             <% if post.tags.present? %>
                <% post.tags.each do |tags| %>
                   <div class="tag">
                    <a href= "#"><%= tags %> </a>
                   </div>
                 <% end %>
              <% end %>
           <% end %>
        <% end %>

这似乎很长而且没有必要。每个帖子都有一系列标签,就像这样......

tags = ["real estate", "property management", "rental"]

我希望它显示所有帖子中所有标签的列表,但只显示每个实例一次,当您单击标签时,它应该显示包含该实例的所有帖子。

在此先感谢您的帮助。

工程师

你应该能够做这样的事情

def index 
  #....
  @uniq_tags = @manager_posts.flat_map(&:tags).uniq
end

flat_map将结果映射到一个扁平的数组,所以如果你有 3 个带有标签的帖子,["real estate", "property management"],["rental","real estate"],[]]那么这就变成了["real estate", "property management","rental","real estate"],我相信你能理解是什么uniq

然后你的观点变成

<h3 class="title">Popular Tags</h3>
<div class="separator-2"></div>
    <div class="tags-cloud">
      <% @uniq_tags.each do |tag| %>
        <div class="tag">
            <a href= "#" class="post_filter" data-tag='<%= tag %>'><%= tag %> </a>
        </div>
      <% end %>
    </div>
</div>

根据评论编辑:假设帖子看起来像

<% @manager_posts.each do |post| %>
  <div class='<%= "post #{post.tags.join(' ')" %>' /> 
<% end %>

那么这个 jQuery 应该一次为一个标签工作示例

$(document).ready(function(){
  $('.post_filter').on('click',function(event){
    var tag = $(this).data("tag")
    $('div.' + tag).show();
    $('div:not(.' + tag + ')' ).hide(); 
  });
});

如果您想一次选择多个标签,我认为您最好尝试为自己设置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

event_set (logstash ruby) 没有给我一个字段?

来自分类Dev

Ruby on Rails,使用activerecord获取具有指定字段的所有记录,这些字段在我的数组中包含一个字符串

来自分类Dev

检查一个字符串是否包含Ruby中另一个字符串的所有字符

来自分类Dev

AngularJS:控制器中除一个字段外的所有字段上的过滤器

来自分类Dev

Ruby on Rails-没有视图的控制器

来自分类Dev

Ruby on Rails一个控制器具有两个功能

来自分类Dev

Ruby方法,它接受一个字符串并返回一个重复的数组,每个重复中的字符串中的下一个字母大写(如wave)

来自分类Dev

如何在Ruby on Rails中验证表单中至少一个字段的存在

来自分类Dev

Ruby打印哈希的所有元素,但最后一个

来自分类Dev

如何使用Ruby将另一个字段的值添加到HTTParty字段

来自分类Dev

Ruby On Rails没有为控制器创建视图

来自分类Dev

从Ruby on Rails 4中的另一个控制器渲染表单

来自分类Dev

Ruby在轨道上。从另一个控制器内部创建“模型”

来自分类Dev

将所有类方法传递给Ruby on Rails中的另一个函数

来自分类Dev

计数一个字段的所有实例(即使在其他段中)

来自分类Dev

从表中选择一个字段重复的所有列

来自分类Dev

返回一个字段中没有重复项的记录

来自分类Dev

Symfony 2:如何构建一个只有一个字段的非常简单的表单,并在控制器中使用它

来自分类Dev

Ruby on Rails 控制器

来自分类Dev

如何在Ruby中显示没有祖先方法的类的所有方法?

来自分类Dev

如何在Ruby中显示没有祖先方法的类的所有方法?

来自分类Dev

有没有办法可以从Ruby的另一个类中调用方法?

来自分类Dev

是否有(已经)比较两个模型实例(一个字段一个字段)以查看它们是否相等的方法?

来自分类Dev

从另一个类Ruby调用实例方法

来自分类Dev

Ruby on Rails活动记录:使用update_all在同一条记录中用另一个字段更新一个字段

来自分类Dev

Ruby on Rails活动记录:使用update_all在同一条记录中用另一个字段更新一个字段

来自分类Dev

使用Ruby On Rails的控制器中的实例变量

来自分类Dev

CSS和JS无法在Rails的一个控制器ruby中以两个动作加载

来自分类Dev

Ruby on rails:创建具有多个用户和一个所有者的组

Related 相关文章

  1. 1

    event_set (logstash ruby) 没有给我一个字段?

  2. 2

    Ruby on Rails,使用activerecord获取具有指定字段的所有记录,这些字段在我的数组中包含一个字符串

  3. 3

    检查一个字符串是否包含Ruby中另一个字符串的所有字符

  4. 4

    AngularJS:控制器中除一个字段外的所有字段上的过滤器

  5. 5

    Ruby on Rails-没有视图的控制器

  6. 6

    Ruby on Rails一个控制器具有两个功能

  7. 7

    Ruby方法,它接受一个字符串并返回一个重复的数组,每个重复中的字符串中的下一个字母大写(如wave)

  8. 8

    如何在Ruby on Rails中验证表单中至少一个字段的存在

  9. 9

    Ruby打印哈希的所有元素,但最后一个

  10. 10

    如何使用Ruby将另一个字段的值添加到HTTParty字段

  11. 11

    Ruby On Rails没有为控制器创建视图

  12. 12

    从Ruby on Rails 4中的另一个控制器渲染表单

  13. 13

    Ruby在轨道上。从另一个控制器内部创建“模型”

  14. 14

    将所有类方法传递给Ruby on Rails中的另一个函数

  15. 15

    计数一个字段的所有实例(即使在其他段中)

  16. 16

    从表中选择一个字段重复的所有列

  17. 17

    返回一个字段中没有重复项的记录

  18. 18

    Symfony 2:如何构建一个只有一个字段的非常简单的表单,并在控制器中使用它

  19. 19

    Ruby on Rails 控制器

  20. 20

    如何在Ruby中显示没有祖先方法的类的所有方法?

  21. 21

    如何在Ruby中显示没有祖先方法的类的所有方法?

  22. 22

    有没有办法可以从Ruby的另一个类中调用方法?

  23. 23

    是否有(已经)比较两个模型实例(一个字段一个字段)以查看它们是否相等的方法?

  24. 24

    从另一个类Ruby调用实例方法

  25. 25

    Ruby on Rails活动记录:使用update_all在同一条记录中用另一个字段更新一个字段

  26. 26

    Ruby on Rails活动记录:使用update_all在同一条记录中用另一个字段更新一个字段

  27. 27

    使用Ruby On Rails的控制器中的实例变量

  28. 28

    CSS和JS无法在Rails的一个控制器ruby中以两个动作加载

  29. 29

    Ruby on rails:创建具有多个用户和一个所有者的组

热门标签

归档