如何从多个表创建一个数组



我有三个模型:运营商,产品,费率。每个载体has_many :products和每个产品has_many :rates。我试图创建一个html表,将循环通过每个产品,并显示只有最新的利率。我假设我需要将其存储在数组(或散列?)中,但不太确定如何存储(因为我是编程新手,但正在学习!)。有人能帮帮我吗?

最近的汇率是在数据库上创建的最后汇率。如果这个信息是真的,那就意味着一个SQL查询只得到一个(limit 1)行,按创建日期降序排列(created_at DESC),就会得到您想要的记录。知道了这一点,你就可以在你的利率模型中创建一个作用域:

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

并在视图中的产品循环中使用此作用域:

  <%= product.rate.current_rate %>

我将这样做模型:

class Product < ActiveRecord::Base
  def current_rate
    rates.order('created_at ASC').last
  end
end

然后这个在视图中:

<%= product.current_rate %>

相关内容

  • 没有找到相关文章

最新更新