【发布时间】:2025-12-04 19:05:04
【问题描述】:
我想在 Rails 中创建一个与数据库中的表不相关的模型。相反,模型应该动态地提取关于其他模型的聚合数据。
例子:
我有一个餐厅模型存储在数据库的餐厅表中。我想有一个 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 字段?
【问题讨论】:
标签: ruby-on-rails activerecord model