我有一个部分的“person.css.erb”:
#caption {
background-image: url(<%= asset_data_uri("caption.png") %>);
text-align: center;
}
字符串
当渲染部分时,它会失败,并且:
undefined method `asset_data_uri'
型
Rails资产管道指南中有一个使用此方法的示例:http://guides.rubyonrails.org/asset_pipeline.html
类似的帮助器也可以工作,例如asset_path。我使用的是Rails 3.2.8。指南过时了吗?方法被重命名了吗?我需要做一些特殊的事情来包含这个帮助器吗?
2条答案
按热度按时间kuuvgm7e1#
我在我的视图中使用
asset_data_uri
时遇到了同样的错误(asset_path
工作),并且无法找出原因。这不完全是你的问题,但我能够通过将此添加到我的application_helper.rb
来修复我的问题:字符串
nwlls2ji2#
最近(Rails 7.1.2和ruby 3.2.2.),我也在尝试为资产管道之外的图像生成data_uri。Tim的回答是一个很好的开始,但我花了一段时间才完全工作。以下是我在这一过程中沿着学到的一些东西:
1.可以使用
Base64.strct_encode64
来避免gsub
删除空格1.如果使用ActiveStorage,则使用
.download
获取原始位(而不是.to_s
)1.我不认为有必要转义base64字符串。在我的情况下,转义字符串在Safari和Chromium中工作,但当我试图将转义的图像上传到Salesforce时,我从他们的REST API中获得
INVALID_DATA_URI
错误。对我来说最终的结果是:
字符串
如果你想使用ActiveStorage变量(默认为
:thumb
大小的变量),它可能看起来像这样:型
与最初的问题无关(但与为什么接受的答案对我不起作用有关),下面是我如何在后台作业中使用上述方法使用Restforce gem更新Salesforce富文本字段(为简洁起见,省略了错误检查代码),选择
:full
变体:型