gpt4 book ai didi

ruby-on-rails - 无法获取 Rails :autosave option to work on models

转载 作者:太空狗 更新时间:2023-10-30 01:58:27 26 4
gpt4 key购买 nike

这可能是一件非常简单的事情,但我一辈子都做不到。出于某种原因,:autosave 实际上并不是自动保存底层模型。

这是我的架构:

    create_table :albums do |t| 
t.string :title
t.text :review

t.timestamps
end

create_table :songs do |t|
t.integer :album_id
t.string :name
t.integer :length
end

create_table :cover_arts do |t|
t.integer :album_id
t.integer :artist
end

这是我的模型:

class Album < ActiveRecord::Base
has_many :songs, :autosave => true
has_one :cover_art, :autosave => true
end

class CoverArt < ActiveRecord::Base
belongs_to :album
end

class Song < ActiveRecord::Base
belongs_to :album
end

当我在 IRB 中对数据库中已有封面艺术的专辑执行以下操作时:

a = Album.find(1)
a.title = "New title"
a.cover_art.artist = "New Artist"
a.save

它更新专辑记录但不更新 CoverArt 记录。我做错了什么?

最佳答案

当我遇到这种情况时,我发现 betternestedset 插件正在覆盖更新方法,而没有使用 alias_method_chain 或其他任何东西来维护现有的调用链。我替换了 betternestedset 的更新重写并在其位置放置了一个简单的 attr_readonly 调用(类似于该插件中现有的 attr_protected 调用)。也许这会对某个地方的人有所帮助。

关于ruby-on-rails - 无法获取 Rails :autosave option to work on models,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2075747/

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