使用此帮助程序传递另一个属性

时间:2014-06-11 12:12:27

标签: ruby sinatra helper

我正在使用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,我理解为只通过一个属性。

如何更改帮助器以接受宽度?

任何帮助表示赞赏

由于

1 个答案:

答案 0 :(得分:1)

也许你可以用一些好的旧括号清理一下(子)方法调用:

<%= image_tag(aws_asset("banner2.jpg"), width: '730px') %>

在你的上一个片段中,Ruby假定您使用2个参数调用aws_asset方法:第一个是"banner2.jpg",第二个是包含width: '730px'的哈希