更改凭据后,Trix编辑器嵌入附件丢失ymc

问题描述

最近我在trix编辑器中遇到了奇怪的行为

我正在尝试为用户提供在其内容丰富的文本中添加一些嵌入内容的可能性

当附件从自定义的Trix编辑器输入中求和时,我正在执行以下请求

...
Rails.ajax({
 type: 'PATCH',url: '/embed.json',data: formData,success: ({content,sgid}) => {
   const attachment = new Trix.Attachment({content,sgid})
   _this.element.editor.insertAttachment(attachment)
   _this.element.editor.insertLineBreak()
 },error : function(result,statut,err){
   alert( 'Forbidden url')
 }
})

致我的嵌入式控制器

class EmbedsController < ApplicationController
  def update
    embed = Embed.new(id: params[:content])
    content = ApplicationController.render(partial: 'embeds/embed',locals: { embed: embed },formats: :html)
    render json: { content: content,sgid: embed.attachable_sgid }
  end
end

具有以下用于我嵌入的模型

require 'oembed'

class Embed
  include ActiveModel::Model
  include ActiveModel::Attributes
  include GlobalID::Identification
  include ActionText::Attachable

  attribute :id

  def self.find(id)
    new(id: id)
  end

  def html
    OEmbed::Providers.register_all
    resource = OEmbed::Providers.get(id)
    resource.html
  end
end

并渲染该图片

<%= embed.html.html_safe %>

这工作得很好。

但是错误地将更新添加到产品中后的几天,我不得不重新创建credentials.ymc,并且在此之后大多数嵌入附件都消失了,并被☒(带有十字的正方形)代替。然后,由于我在本地环境和生产环境之间同步凭据时遇到了一些困难,因此我再次进行了此操作,并且大多数新的嵌入附件再次被☒替换。

在github上有this issue,提到通过更改secret_key_base可能发生类似的问题

我理解这一点是因为为附件生成sgid。因此,我想知道如何才能使嵌入更加持久。

我曾考虑过创建一个带有sgid列和embed_url的嵌入表,然后我可以重新生成sgid,只要该列坏了,但我的Article记录将保存一个rich_content与旧附件的sgid,我无法更新以替换它。

有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...