Ruby on rails Rails 6:ActionText断开我的链接,如何禁用URL编码?

Ruby on rails Rails 6:ActionText断开我的链接,如何禁用URL编码?,ruby-on-rails,actiontext,Ruby On Rails,Actiontext,我在模型中使用action_文本,需要使用liquid模板变量键入链接,例如: Contact us at: <a href="mailto:support@{{website.domain_name}}">support@{{website.domain_name}}</a> 联系我们: 但是,action_text通过对花括号进行编码来断开这些链接:(它在src img tags src attributes中也这样做:( 联系我们 如果我在

我在模型中使用action_文本,需要使用liquid模板变量键入链接,例如:

Contact us at: <a href="mailto:support@{{website.domain_name}}">support@{{website.domain_name}}</a>
联系我们:
但是,action_text通过对花括号进行编码来断开这些链接:(它在src img tags src attributes中也这样做:(

联系我们
如果我在href或src属性中的任何位置使用自己的标记,例如[domain_name],情况也会如此

我只想让我的HTML保持独立,不受影响,就像我输入它一样,我不需要任何“帮助”编码URL,非常感谢您的操作\文本/Rails

有没有办法修复或禁用这种不需要的行为

稍后编辑:


事实证明,这个trix东西也在删除任何其他HTML,如表、div等:(它甚至删除HTML数据-属性:((如何禁用此功能?我只需要一个具有基本功能的友好HTML编辑器(粗体、下划线、段落、标题…)您可以使用
CGI
。例如,如果您有一个
Post
模型,其中
具有丰富的文本:内容
,那么在
显示
视图中,您可以执行以下操作:

<%= (CGI.unescapeHTML @post.content.to_s).html_safe %>

Trix使用ActionText,它是自己的富文本,因此您首先将其转换为字符串,并使用
转换为
,然后使用
CGI
对HTML内容进行编码,最后使整个字符串
HTML安全
显示在浏览器中

更多上下文:无论您在
ActionText
text\u区域
中键入什么,返回数据库时,所有内容都将存储为字符串。数据库不保存HTML。因此,您只希望将HTML保存为字符串,然后在视图中接收到它后,您可以执行编码和其他操作,将其转换回HTML



您甚至可以使用或Nokogiri(有点复杂)

您可以使用
CGI
。例如,如果您有一个
Post
模型,其中
具有丰富的文本:内容
,那么在
显示
视图中,您可以执行以下操作:

<%= (CGI.unescapeHTML @post.content.to_s).html_safe %>

Trix使用ActionText,它是自己的富文本,因此您首先将其转换为字符串,并使用
转换为
,然后使用
CGI
对HTML内容进行编码,最后使整个字符串
HTML安全
显示在浏览器中

更多上下文:无论您在
ActionText
text\u区域
中键入什么,返回数据库时,所有内容都将存储为字符串。数据库不保存HTML。因此,您只希望将HTML保存为字符串,然后在视图中接收到它后,您可以执行编码和其他操作,将其转换回HTML


您甚至可以使用或Nokogiri(有点复杂)

I使用
CGI::unescape
在我的模型中,我有如下内容:

class Post
有丰富的文本:内容
def解码内容
CGI::unescape(content.to_s)
结束
结束
然后在posts对象上使用它。例如,
Post.first.decoded\u内容


CGI::unescape html
CGI::unescape\u html
对我不起作用。

我使用
CGI::unescape
在我的模型中,我有如下内容:

class Post
有丰富的文本:内容
def解码内容
CGI::unescape(content.to_s)
结束
结束
然后在posts对象上使用它。例如,
Post.first.decoded\u内容


CGI::unescape html
CGI::unescape\u html
对我不起作用