gpt4 book ai didi

ruby-on-rails - 如何通过 order、find、where 等调用来保持反向关系?

转载 作者:行者123 更新时间:2023-12-04 05:33:30 24 4
gpt4 key购买 nike

给定以下具有反向关联的类:

class User < ActiveRecord:Base
has_many :accounts, inverse_of: :user
end

class Account < ActiveRecord:Base
belongs_to :user
end

任何给定的用户对象加载如下:

u = User.first
u.some_not_saved_variable = "123"

以下代码说明执行新的sql语句(订单命中数据库)后,反向关系没有持久化:

u.accounts.first.user.some_not_saved_variable                       #=> "123"
u.accounts.order(:created_at).first.user.some_not_saved_variable #=> nil

如何确保我的用户对象在执行命令、查找、位置等调用后仍然保持不变?

最佳答案

如果您想保留对象属性但不想保存记录,那么您可以尝试使用 attributes=(new_attributes)assign_attributes(new_attributes, options = {})

在你的情况下:

u = User.first
u.attributes= :some_not_saved_variable => "123"

u = User.first
u.assign_attributes :some_not_saved_variable => "123"

来源:assign_attributesattributes=

关于ruby-on-rails - 如何通过 order、find、where 等调用来保持反向关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14726843/

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