Ruby on rails Rails-使用SQL的应用程序布局?

Ruby on rails Rails-使用SQL的应用程序布局?,ruby-on-rails,layout,views,ruby-on-rails-3,Ruby On Rails,Layout,Views,Ruby On Rails 3,大家好,我的同事们! 我有个问题哦,哽咽!:P 现在我的问题是,我正试图为一个更大的网站做一个设计,它进展顺利。直到我应该制作内容/新闻滑块。它应该从多个表中获取数据并返回application.html.erb 因此,在最新的5个版本中进行评论和发布,并在创建最新版本后进行订购是非常必要的。然后在application.html.erb中给我。。(轨道3.0.0.beta4) 希望你们能理解我。为所有型号取最新的5个,然后将所有记录放在一个数组中,对数组进行排序,然后取前5个元素 # cons

大家好,我的同事们! 我有个问题哦,哽咽!:P 现在我的问题是,我正试图为一个更大的网站做一个设计,它进展顺利。直到我应该制作内容/新闻滑块。它应该从多个表中获取数据并返回application.html.erb

因此,在最新的5个版本中进行评论和发布,并在创建最新版本后进行订购是非常必要的。然后在application.html.erb中给我。。(轨道3.0.0.beta4)


希望你们能理解我。

为所有型号取最新的5个,然后将所有记录放在一个数组中,对数组进行排序,然后取前5个元素

# consider moving .order('date desc').limit(5) to a named scope or a module
announcements = Announcement.order('date desc').limit(5)
posts = Post.order('date desc').limit(5)
monkeys = Monkey.order('date desc').limit(5)
# .. add others here

elements = (announcements + posts + monkeys).sort_by(&:date).reverse[1..5]
变量
元素
将具有5,如果它们存在的话

注意:我假设您的所有模型都有一个名为“date”的方法。您可以将其更改为创建日期或其他任何内容


您可以将这段代码放在几个地方,但我认为最好的是一个“主”控制器,它是专门为呈现主页而创建的。元素将在其show action上进行计算。

不知道使用此语法是否比使用egarcia的语法更有效:

elements = (announcements | posts | monkeys).sort_by(&:date).reverse[1..5]

如果您需要在多个页面(例如侧边栏)中使用此代码,那么最好的方法可能是编写一个助手(例如:last_items)

您可以重新表述问题(或者更具体一点)?提前谢谢。这很难解释,尤其是当我的英语如此糟糕的时候。但我会努力的。我在布局部分使用了nifty:layout,因此我创建了一个自定义的application.html.erb文件,其中我有一个滑动条,用于滚动新闻、评论等内容。来自多个表。所以我的问题是如何从我的表中取出数据(参见:表(有一些)),然后取出数据。就像@posts=posts.find(…)中的posts一样,你明白了吗?嘿,谢谢,但是你没有回答我问题的最后一部分,关于把它放在哪里?Wich控制器。不,我没有约会的方法?当然-家庭控制器是你最好的选择。更新了我的答案。