gpt4 book ai didi

ruby-on-rails - rails : Creating an "All activity feed" from multiple models

转载 作者:太空宇宙 更新时间:2023-11-03 16:06:27 25 4
gpt4 key购买 nike

我有一个包含多个“Feed”的页面。在我的 Controller 中,我有这样的东西:

def index

@plays = current_user.plays.includes(:game).order("created_at desc")

@wants = current_user.wants.includes(:game).order("created_at desc")

@ratings = current_user.ratings.includes(:game).order("created_at desc")

end

我在 View 中使用了这样的代码:

   <% @plays.each do |play| %>
You played <%= play.game.name %></p>
<% end %>

现在我想在“所有事件”页面上创建第四个提要,它在按创建日期排序的一个提要中显示“播放”、“需求”和“评分”(desc)。

任何有关执行此操作的最佳方法的帮助都会很棒。

更新:根据每个模型的请求代码,现在非常简单:

class Play < ActiveRecord::Base
attr_accessible :game_id, :user_id, :description

belongs_to :user
belongs_to :game

end

class Rating < ActiveRecord::Base

attr_accessible :game_id, :id, :score, :user_id, :description

belongs_to :user
belongs_to :game


end

class Want < ActiveRecord::Base
attr_accessible :game_id, :user_id, :description

belongs_to :user
belongs_to :game


end

最佳答案

由于这些来自不同的表,您将无法在数据库查询中对它们进行排序。但是由于您已经拥有每个数组,您可以使用 Ruby 进行组合和排序:

@activities = (@plays + @wants + @ratings).sort_by {|a| a.created_at}.reverse

关于ruby-on-rails - rails : Creating an "All activity feed" from multiple models,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12771548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com