如何列出我的Tag类的某些类型?

时间:2014-01-15 22:15:12

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 will-paginate

我无法按照我希望的那样列出Dogs代码。我的tag_types课程中有3个不同的Tag,分别是红色,蓝色和绿色。

class Tag
 has_many :taggings
 has_many :dogs, through: :taggings

 TAG_TYPES = %w(Red Blue Green)

 validates :tag_type,    inclusion: { :in => TAG_TYPES }
end

class DogsController
  def index
    @dogs = Dog.text_search(params[:query]).page(params[:page]).per_page(5)
  end 
end

我正在搜索Dog,它可以包含所有3种标记类型。我想分别列出每种类型的最后3个添加标签,如下所示:

狗/ index.html.erb

<% @dogs.each do |dog| %>

    <% dog.tags(:tag_type => "Red").last(3).each do |tag| %>
       <%= tag.name  %>
    <% end %>

    <% dog.tags(:tag_type => "Blue").last(3).each do |tag| %>
       <%= tag.name  %>
    <% end %>

    <% dog.tags(:tag_type => "Green").last(3).each do |tag| %>
       <%= tag.name  %>
    <% end %>

<% end %>

我尝试了这个,但它列出了任何标签,无论颜色如何,所以列出3个标签的所有结果都是相同的。我怎样才能为每个块显示正确的?

1 个答案:

答案 0 :(得分:0)

感谢Thahakp,简单的改变就是将where添加到dogs.tags