首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从多个表创建数组?

如何从多个表创建数组?
EN

Stack Overflow用户
提问于 2013-01-14 19:18:08
回答 2查看 71关注 0票数 0

我有三种型号:载体,产品,费率。每个运营商has_many :products和每个产品has_many :rates。我正在尝试创建一个html表,它将循环遍历每个产品,并且只显示最新的速率。我假设我需要将它存储在数组(或散列?)中,但不太确定如何存储(因为我对编程还不熟悉,但需要学习!)有人能帮忙吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-14 19:43:50

我会像这样做模型:

代码语言:javascript
复制
class Product < ActiveRecord::Base
  def current_rate
    rates.order('created_at ASC').last
  end
end

然后这个观点是:

代码语言:javascript
复制
<%= product.current_rate %>
票数 0
EN

Stack Overflow用户

发布于 2013-01-14 19:28:06

最近的速率是在数据库上创建的最后一个速率。如果这个信息是真的,那就意味着一个只有一个(limit 1)行由创建日期降序(created_at DESC)命令的SQL查询将得到您想要的记录。知道了这一点,您可以在您的费率模型中创建一个范围:

代码语言:javascript
复制
scope :current_rate, order('rates.created_at DESC').limit(1).first
# As @AntohnyAlberto said, limit would bring an array, so you may use .first on the results
# Or you can use just .first, as it would bring only the first one
scope :current_rate, order('rates.created_at DESC').first

并在您的视图中对产品循环使用此范围:

代码语言:javascript
复制
  <%= product.rate.current_rate %>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14325069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档