gpt4 book ai didi

ruby-on-rails - 使用 friendly_id 一段时间后启用历史记录

转载 作者:太空宇宙 更新时间:2023-11-03 16:27:06 29 4
gpt4 key购买 nike

我正在尝试添加 history到现有的生产基地。我之前没有生成 friendly_id 迁移,所以在添加它并将 use: :sluggable 更改为 use: [:sluggable, :history] 到我的模型后,我的能力Model.friendly.find... 在我进行此更改之前模型中的任何对象都消失了。

解决此问题的最佳方法是什么。在迁移过程中,我是否应该在我的模型中的每条记录上循环并 .save ?到目前为止,这就是我想做的所有事情。不确定这是否可行,但一定有更好的方法。

更新

我在最初的问题中提到的是我是如何去做的。这看起来很笨拙,但它奏效了。如果有更好的答案,我仍然希望得到更好的答案。

# Added this to friendly_id migration
class CreateFriendlyIdSlugs < ActiveRecord::Migration
def up
Model.all.each do |m|
m.save
end
end
end

最佳答案

这应该适用于 mysql 和 postgresql(没有 INSERT IGNORE)

def up
execute <<-SQL
INSERT INTO friendly_id_slugs
(slug, sluggable_id, sluggable_type, created_at)
SELECT m.slug, m.id, 'Model', NOW()
FROM models m
LEFT OUTER JOIN friendly_id_slugs f ON f.sluggable_id = m.id
WHERE m.slug IS NOT NULL AND LENGTH(m.slug) > 0 AND f.id IS NULL
SQL
end

关于ruby-on-rails - 使用 friendly_id 一段时间后启用历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22616262/

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