gpt4 book ai didi

ruby-on-rails - 具有聚合数据的 Rails 模型(不由表支持)

转载 作者:行者123 更新时间:2023-12-04 05:49:41 25 4
gpt4 key购买 nike

我想在 Rails 中创建一个与数据库中的表无关的模型。相反,模型应该动态地提取关于其他模型的聚合数据。

例子:

我有一个 Restaurant 模型存储在数据库的 restaurants 表中。我想要一个 RestaurantStats 模型,我可以在其中运行 RestaurantStats.find_total_visitors 或 RestaurantStats.find_time_spent 等......它返回一组 RestaurantStats 模型,每个模型具有:

[:restaurant_id, :stat_value]

显然,在每个 find... 方法中,stat_value 将意味着不同的东西(对于 find_time_spent 它将是花费的秒数,对于 find_total_visitors 它将是访问者的数量)。我们的想法是返回前 100 家餐厅,按花费的时间或总访客数。

到目前为止,我正在创建一个模型(不是从 ActiveRecord 继承的)

class RestaurantStats 
attr_reader :restaurant_id
attr_reader :stat_value

def self.find_total_visitors ...
def self.find_time_spent ...
end

问题是如何以 rails y 方式定义 find_total_visitors、find_time_spent 函数,以便它填充 restaurant_id、stat_value 字段?

最佳答案

您确定不只是希望这些成为 Restaurant 上的方法吗?

class Restaurant < ActiveRecord::Base
has_many :visitors

def total_visitors
visitors.count # Or whatever
end

def time_spent
visitors.average(:visit_time) # Or whatever
end
end

关于ruby-on-rails - 具有聚合数据的 Rails 模型(不由表支持),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1809916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com