【问题标题】:Pass through another attribute with this helper使用此助手传递另一个属性
【发布时间】:2014-06-11 12:12:27
【问题描述】:

我正在使用 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,我理解这是因为我只传递了一个属性。

如何更改帮助程序以也接受宽度?

【问题讨论】:

    标签: ruby sinatra helper


    【解决方案1】:

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

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

    在您的最后一个 sn-p 中,Ruby 假设您使用 2 个参数调用 aws_asset 方法:第一个是 "banner2.jpg",第二个是包含 width: '730px' 的哈希

    【讨论】:

      猜你喜欢
      • 2015-12-10
      • 1970-01-01
      • 1970-01-01
      • 2013-09-30
      • 1970-01-01
      • 2016-09-02
      • 1970-01-01
      • 1970-01-01
      • 2014-11-28
      相关资源
      最近更新 更多