gpt4 book ai didi

ruby-on-rails - 如何更改包含另一个模型对象的 Rails 模型对象变量名称

转载 作者:太空宇宙 更新时间:2023-11-03 17:32:18 26 4
gpt4 key购买 nike

假设我定义了这个模型和关联的架构。

class Memory < ActiveRecord::Base
belongs_to :memory_slot
end

class MemorySlot < ActiveRecord::Base
has_many :memories
end

现在通常它让我可以通过@memory.memory_slot.name访问Memory的内存插槽。但我想通过不同的方法访问它,比如 @memory.supporting_memory_slot.name。最好的方法是什么?

最佳答案

你不需要任何新的迁移,你可以使用以前的memory_slot_id,并且仍然可以像下面这样更改名称:

class Memory < ActiveRecord::Base
belongs_to :supporting_memory_slot, class_name: 'MemorySlot', foreign_key: 'memory_slot_id'
end

class MemorySlot < ActiveRecord::Base
has_many :memories
end

这样,如果您之前保存了任何记录,它们也将适用于当前场景。但是,如果您生成新的迁移,将无法访问保存的旧记录,因为它们是使用 foreign_key 作为 memory_slot_id 使用的。

关于ruby-on-rails - 如何更改包含另一个模型对象的 Rails 模型对象变量名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30829581/

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