ruby-on-rails - 如何从 rails 中的许多模型创建所有对象的数组

标签 ruby-on-rails ruby

我正在使用 rails 2.. 我有疑问。

在我的应用程序中,我有 3 个模型,例如

博客、维基、媒体

我正在尝试创建一个类似@final 的数组,其中包含在我的应用程序下发布的所有博客、维基和媒体。

我试过

@blogs = Blog.all
@wikis = Wiki.all
@medias = Media.all

@final = []
@final << @blogs << @wikis << @medias

上面的最终数组中有 3 个数组..

但我希望保留最终数组,其中包含从 3 个模型返回的对象

怎么做? 请提出建议

编辑

我试过的是

 @final = []
 @blogs = Blog.all
 @wikis = Wiki.all
 @medias = Media.all
 @final = @blogs + @wikis + @medias

这正是我所需要的.. 但它只是列出了所有的博客、媒体和维基。如何根据特定对象的创建日期列出所有实体

最佳答案

您使用了错误的运算符,您想要这个:

@final = @blogs + @wikis + @medias

<< operator对于数组:

Pushes the given object on to the end of this array.

+ operator :

Returns a new array built by concatenating the two arrays together to produce a third array.

你也可以使用 flatten 如果你真的喜欢<<出于某种原因:

@final = (@final << @blogs << @wikis << @medias).flatten

但这有点毫无意义。如 powerMicha 所述,您需要启动 <<@final 链接(或一些临时数组)如果你不想修改任何 @blogs , @wikis , 或 @medias数组。

就排序而言,您可以使用 sort_by! :

@final.sort_by(&:created_at)

假设您有通常的 created_at对象上的方法。

关于ruby-on-rails - 如何从 rails 中的许多模型创建所有对象的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6758921/

相关文章:

ruby-on-rails - ActiveRecord枚举错误: “is not a valid value”

ruby-on-rails - 用于维基百科数据提取的 Rails + MediaWiki API

jquery - 如何使用 ujs、jquery 和 Rails 加载内容?

ruby-on-rails - 在 Rails 中安排 ActiveJob

Ruby 方法链接中间值

mysql - Rails where on 查询结果

ruby-on-rails - 在 Rails 中以不同语言输入字段值

java - 玩! 2+ 以 RESTfull 方式添加 JSON 支持

ruby-on-rails - Devise Invitable 根据用户类型发送不同的电子邮件

无法将字符串从 Ruby 传递到我的 Rust 函数中