你好,我所有的同行代码! 我遇到了问题ohh chok! ..:P 现在我的问题,我正在尝试做一个更大的网站的设计,它会很好。直到我应该制作内容/新闻滑块。它应该从多个表中获取数据并返回到application.html.erb。Rails - 使用SQL的应用程序布局?
所以它是采取评论和公告只是最新的5,并在最新创建后订购。然后把它给我application.html.erb .. (Rails 3.0.0.beta4)
希望你们能理解我。
你好,我所有的同行代码! 我遇到了问题ohh chok! ..:P 现在我的问题,我正在尝试做一个更大的网站的设计,它会很好。直到我应该制作内容/新闻滑块。它应该从多个表中获取数据并返回到application.html.erb。Rails - 使用SQL的应用程序布局?
所以它是采取评论和公告只是最新的5,并在最新创建后订购。然后把它给我application.html.erb .. (Rails 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]
变量elements
将有5个,如果它们存在。
注意:我假设您的所有模型都有一个名为“date”的方法。您可以将其更改为date_created或其他。
你可以把这段代码放在几个地方,但我认为最好的代码将是一个专门为渲染主页而创建的“家”控制器。元素将根据其显示动作进行计算。
嘿,谢谢,但你没有给我答案在我的问题的最后一部分,关于在哪里放? Wich控制器。不,我没有日期方法? – 2010-07-03 08:27:08
当然 - 一个家庭控制器是你最好的选择恕我直言。更新了我的答案。 – kikito 2010-07-03 19:23:11
不知道这是否是更好的性能,使用这种语法,而不是一个从egarcia:
elements = (announcements | posts | monkeys).sort_by(&:date).reverse[1..5]
,如果你需要使用几页的代码(例如在侧边栏),那么最好的方式可能是写一个帮手(说:last_items)
你能改述一下这个问题吗(或者更具体)?提前致谢。 – 2010-07-02 16:48:36
这是很难解释,特别是当我对我英语如此糟糕。 但我会尝试。 我使用漂亮:布局的布局部分,所以我创建了一个自定义的application.html.erb文件,因为我有一个滑块来滚动新闻,评论和类似的东西。来自多个表格。所以我的问题是如何从我的表中取出数据(请参阅:表格(有几个表格)),然后将数据取出。就像@posts = Posts.find(..)中的帖子一样,你明白了吗? – 2010-07-02 17:43:45