问题描述
最近我在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 (将#修改为@)