我正在使用Sinatra和S3存储桶来提供我的资产。我有以下帮助器将s3存储桶URL指定为其路径,但我想知道如何通过另一个属性,例如宽度。
辅助
helpers do
def aws_asset (path)
File.join settings.asset_host, path
end
end
配置/生产
configure :production do
set :asset_host, "//#{ENV['FOG_DIRECTORY']}.s3.amazonaws.com/assets/images"
end
在我的视图中使用此助手我可以这样做
<%= image_tag(aws_asset "banner2.jpg") %>
我想要做的是通过宽度,我可以单独使用image_tag
<%= image_tag("banner2.jpg", width: '730px') %>
但如果我这样做
<%= image_tag(aws_asset "banner2.jpg", width: '730px') %>
我错误的参数数量错误,2为1,我理解为只通过一个属性。
如何更改帮助器以接受宽度?
任何帮助表示赞赏
由于
答案 0 :(得分:1)
也许你可以用一些好的旧括号清理一下(子)方法调用:
<%= image_tag(aws_asset("banner2.jpg"), width: '730px') %>
在你的上一个片段中,Ruby假定您使用2个参数调用aws_asset
方法:第一个是"banner2.jpg"
,第二个是包含width: '730px'
的哈希