我正在开发一个应用程序,允许用户从youtube上传视频,但用户可以从同一个艺术家多次上传不同的歌曲我只需要一首艺术家的歌现在这就是我得到的结果。”“sensato”被分为两个不同的组,即使是同一个艺术家的名字。
群组
埃尔市长-德巴拉塔
群组
阿尔法-杰维
群组
未来-你在哪里
群组
森萨托-塞费利兹
群组
森萨托-贝洛
(控制器)

def index
    @items = Video.all.order("cached_votes_up DESC, artist ASC")
    @items_by_day = @items.group_by { |t| t.artist }

end

(视图)
    <% @items_by_day.each do |day, items| %>

            <div class="row">
            <h1>Group</h1>

            <% for a in items %>
            <div class="videothumb col-xs-12 col-sm-4">
                <div class="" style="
    background-size: 100% 100%;
    height: 240px;
    -webkit-border-radius: 10px;
    -moz-border-radius: 10px;
    border-radius: 10px;
    overflow: hidden;">

                    <%= link_to  a do %>
  <div style="background: rgba(0,0,0, 0); width:100%; height: 85%;z-index:1000; position:absolute; top:0;"></div>
<% end %>
                    <iframe width="100%" height="100%" src="https://www.youtube.com/embed/<%= a.url %>" frameborder="0" allowfullscreen></iframe>

                    </div>
                <div class="col-xs-12">
                <h3>
                    <%= link_to a.title, a %> </h3>
                </div>
                <div class="col-xs-6">
                <h2><%= a.artist %></h2>

                </div>
                <div class="col-xs-6">

                    <div style="text-align:right">
                        <%= link_to like_video_path(a), method: :put, class: "" do %>
                            <span class="glyphicon glyphicon-chevron-up">
                                <%= a.get_upvotes.size %>
                        <% end %>
                        <%= link_to dislike_video_path(a), method: :put, class: "" do %>
        <span class="glyphicon glyphicon-chevron-down">
        <%= a.get_downvotes.size %>
      <% end %>

                    </div>
                </div>



            </div>
            <% end %>

            </div>


<% end %>

(型号)
class Video < ActiveRecord::Base
    acts_as_votable
    belongs_to :user

    validates :title,
        presence: true,
        length: { minimum: 3 },
        uniqueness: true

    validates :url,
        presence: true,
        length: { minimum: 3 },
        uniqueness: true

    validates :genre, presence: true
end

(迁移)
class CreateVideos < ActiveRecord::Migration
  def change
    create_table :videos do |t|
      t.string :title
      t.string :artist
      t.string :url
      t.text :description

      t.timestamps null: false
    end
  end
end

最终结果应该是这样的
群组
埃尔市长-德巴拉塔
群组
阿尔法-杰维
群组
未来-你在哪里
群组
森萨托-塞费利兹

最佳答案

你需要这样的东西:

@items_by_day = @items.select('artist').uniq.group('artist')

更新
试试这个:
def index
  @items = Video.all.order("cached_votes_up DESC, artist ASC")
  @items_by_day = Video.select('artist').uniq.group('artist').joins('videos')
end

关于ruby-on-rails - 如何在Rails 4上的 ruby 上不显示重复项?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32161358/

10-10 07:03