在Rails 6应用程序中用ActionText替换Ckeditor

3

我在我的Rails 6应用程序中用ActionText替换了CKEditor,Rails 6的升级和安装ActionText很顺利。

我想问一下如何将我的模型属性数据迁移到新建立的ActionText关联字段(不完全是迁移,我想能够显示旧数据并且能够编辑/更新它)。

例如,我有一个在CKEditor中使用的description属性,现在我已将该字段更改为如下的rich_text字段:has_rich_text :description

所以现在所有对description的引用都只查询其rich_text关联。如果我想在视图中执行类似以下代码的操作,我该怎么做呢?

@model.description (display if rich_text data is present) || @model.description (or try this if rich_text data is blank, also display nothing if both is blank) 

我希望能够在展示、编辑、更新和删除操作中实现这一点。有什么办法可以使其工作?
1个回答

2
为什么不直接将Ckeditor列迁移到新的action_text表中?
最初的回答:无。
class ConvertCkeditorToActionText < ActiveRecord::Migration[6.0]
  def up
    action_text_rich_text_statement = ActiveRecord::Base.connection.raw_connection.prepare('action_text_rich_text_statement', <<-SQL)
      INSERT INTO action_text_rich_texts (
        name, body, record_type, record_id, created_at, updated_at
      ) VALUES ($1, $2, $3, $4, $5, $6)
    SQL

    Rails.application.eager_load!

    transaction do
      Post.all.each do |post|
        ActiveRecord::Base.connection.raw_connection.exec_prepared(
                'action_text_rich_text_statement', [
                  'body',
                  post.body,
                  "Post",
                  post.id,
                  post.created_at,
                  post.updated_at
                ])
      end
    end
  end

  def down
    raise ActiveRecord::IrreversibleMigration
  end
end

迁移@posts.body到新表的步骤是什么?迁移后的数据如何与正确的用户保持链接?感谢您的帮助! - Tom Connolly
@TomConnolly 添加了一个迁移示例。 - dnwilson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接