使用ERB和Rails调整图像元素的大小

时间:2015-07-16 15:05:01

标签: ruby-on-rails ruby image erb

我可以将图像放入我的rails应用程序,但它具有静态大小。我想改变这张图片的大小。

我目前的代码是

<%= image_tag("logo.png", :alt => "rss feed") %>

我虽然这可能有效

<%= image_tag("logo.png", :alt => "rss feed", height="42" width="42") %>

但事实并非如此。

3 个答案:

答案 0 :(得分:3)

你实际上是在正确的轨道上!在Rails视图中,您想要使用哈希。您的第二个示例不起作用的原因是因为它看起来像height,一个新对象,等于42。相反,您需要对象的高度属性,就像使用alt文本一样。

与制作新的ActiveRecord对象类似,您希望将图像的属性定义为哈希。使用image_tag时,如下所示:

   

有时html属性会包含破折号。我不确定ERB如何处理它,但你总是可以使用火箭发送语法,例如:'data-method' => :delete

根据你的例子,这是最有效的线。它允许高度和宽度独立运行。

<%= image_tag("logo.png", alt: "rss feed", height: 42, width: 42) %>

无需输入数字作为字符串。渲染时它们会自动解释为42px。最后,正如有人提到的那样,通常最好在CSS中进行样式设置,但是因为(我假设)这个尺寸正在一个图像上使用,所以没关系(IMO)。

答案 1 :(得分:2)

<%= image_tag("logo.png", size: "42x42", alt: "rss feed") %>

OR

<%= image_tag("logo.png", height: '42', width: '42', alt: "rss feed") %>

有关更多image_tag文档,请参阅此处:http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html#method-i-image_tag

答案 2 :(得分:1)

你可以这样做:

<%= image_tag("logo.png", :alt => "rss feed", :height =>"42", :width => "42") %>

但最好在css

中进行