gpt4 book ai didi

ruby-on-rails-3 - Find_by_sql 和计算字段

转载 作者:行者123 更新时间:2023-12-04 07:05:18 26 4
gpt4 key购买 nike

我正在使用 find my sql,我想在数据库中计算一些东西并添加到我的模型中。

我会尽量简化代码

class User < ActiveRecord::Base
attr_accessor :comments_count

end

还有别的地方:

@users = User.find_by_sql("select * (select count(*) from comments where user_id=u.id) as comments_count from Users u")


@user.map{|u| puts u.comments_count}

有什么帮助吗?

最佳答案

不幸的是,ActiveRecord 不会将任何选定的列与模型上的属性匹配。但是,类似的东西可能很容易组合在一起。首先,您需要将 find_by_sql 重载为这样的内容 -

def self.find_by_sql(sql)
values = connection.select_all(sql)

objects = []

values.each do |row|
objects << self.new(row)
end

objects
end

然后模型的初始化函数可以批量分配基于模式的属性,然后处理分配您的自定义属性。它不像您可能希望的那样干净或简单的解决方案,但它应该完成任务。您可能会编写初始化函数,使其相当通用,因为它可以批量分配所有基于模式的属性,然后将传入的剩余键与 self< 上可能存在的任何属性进行匹配.

关于ruby-on-rails-3 - Find_by_sql 和计算字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14903418/

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