如何转换宽度和宽度的img内联样式属性的高度

时间:2017-01-20 20:43:03

标签: ruby-on-rails ruby ruby-on-rails-4 amp-html

目前我的图像是从我的cms中显示的,如下所示:

我正在努力创建AMP页面,但他们不接受样式中的图像尺寸。 AMP页面需要:

<amp-img alt="stuff" src="welcome.jpg" height="200" width="203"></amp-img>

使用rails / ruby​​进行转换有一种简单的方法吗?

由于

1 个答案:

答案 0 :(得分:3)

如果你这么做,你可以创建一个像image_tag这样的视图助手:

module AmpHelper
  include AssetUrlHelper

  def amp_image_tag(source, options={})
    options = options.symbolize_keys
    src = options[:src] = path_to_image(source)

    options[:width], options[:height] = extract_dimensions(options.delete(:size)) if options[:size]

    content_tag("amp-img", nil, options)
  end

protected

  def extract_dimensions(size)
    size = size.to_s
    if size =~ %r{\A\d+x\d+\z}
      size.split('x')
    elsif size =~ %r{\A\d+\z}
      [size, size]
    end
  end
end

这将与Asset Pipeline配合使用,在生产中提供资产哈希/指纹,并使用:size选项:

amp_image_tag 'foo.jpg', size: '300x200', alt: 'Foo Bar!'

#=> <amp-img src="/assets/foo-abc123.jpg" width="300" height="200" alt="Foo Bar!"></amp-img>