【发布时间】:2016-04-04 00:41:29
【问题描述】:
我正在运行 Rails 4.2.4。模型中的一个属性在插入或更新时由数据库(PostgreSQL 9.3)计算和存储。我想知道,除了在 activerecord 创建和更新后调用“reload”方法之外,是否可以让它们自动返回计算属性的值?我看到 create 在其 SQL 语句中添加了 RETURNING "id"。如何在语句中同时添加 RETURNING "my_calculated_attribute"?
最好不要在每次创建或更新后“重新加载”查询。
提前致谢。
【问题讨论】:
-
我很确定
reload是您唯一的选择。 -
我的挖掘得出了同样的结论——我希望它是错误的。为了避免额外的
reload查询,我可能只需要将计算移到 activerecord 回调中。 -
只要你的 Rails 应用程序不会接触数据库,它就可以工作。您可以添加一个 CHECK 约束以确保我想正确计算该属性。
-
感谢您的提醒。 CHECK 约束是个好主意。不希望其他客户端破坏一致性。
标签: ruby postgresql ruby-on-rails-4 activerecord