将 ActionText 字段复制到纯文本字段 Rails
Copy an ActionText field to a plain text field Rails
我需要在 Rails ActionText 字段中搜索文本。找不到任何解决方案,所以我创建了一个纯文本字段,当提交 ActionText 表单时,before_ save self.content_plain_text = content.body.to_plain_text
是 运行。这很好用,我可以在 content_plain_text
.
中搜索
但现在我需要为所有现有数据更新 content_plain_text
。发现这个 How do I move a column (with contents) to another table in a Rails migration? 有一个迁移。我以为我可以模仿那个,但这行不通。
class CopyContentToContentPlainText < ActiveRecord::Migration[6.0]
def up
Doc.find_each do |d|
content_plain_text = action_text_rich_texts.record_id[d].content.body.to_plain_text
Content.create!(doc_id: d.id, content_plain_text: content_plain_text)
end
end
end
我在获取 ActionText 字段时迷路了。 record_id
对应于doc_id
正如您已经定义的那样before_save
before_save { self.content_plain_text = content.body.to_plain_text }
然后每当你调用 a_doc.save
时,before_save
将被触发,因此,它的 content_plain_text
将被分配给 content.body.to_plain_text
。
因此您可以更新所有 Doc
记录的 content_plain_text
只需简单调用 save
class CopyContentToContentPlainText < ActiveRecord::Migration[6.0]
def up
Doc.find_each(&:save)
end
end
我需要在 Rails ActionText 字段中搜索文本。找不到任何解决方案,所以我创建了一个纯文本字段,当提交 ActionText 表单时,before_ save self.content_plain_text = content.body.to_plain_text
是 运行。这很好用,我可以在 content_plain_text
.
但现在我需要为所有现有数据更新 content_plain_text
。发现这个 How do I move a column (with contents) to another table in a Rails migration? 有一个迁移。我以为我可以模仿那个,但这行不通。
class CopyContentToContentPlainText < ActiveRecord::Migration[6.0]
def up
Doc.find_each do |d|
content_plain_text = action_text_rich_texts.record_id[d].content.body.to_plain_text
Content.create!(doc_id: d.id, content_plain_text: content_plain_text)
end
end
end
我在获取 ActionText 字段时迷路了。 record_id
对应于doc_id
正如您已经定义的那样before_save
before_save { self.content_plain_text = content.body.to_plain_text }
然后每当你调用 a_doc.save
时,before_save
将被触发,因此,它的 content_plain_text
将被分配给 content.body.to_plain_text
。
因此您可以更新所有 Doc
记录的 content_plain_text
只需简单调用 save
class CopyContentToContentPlainText < ActiveRecord::Migration[6.0]
def up
Doc.find_each(&:save)
end
end