image_tag帮助程序中未传递要查看的选项



问题

我有一个运行三元运算的帮助程序方法。 结果操作数都是image_tag方法。 当我从视图调用此帮助程序时,":size"选项不会转换为 html 中的高度和宽度标记。 当我将任一方法直接复制并粘贴到我的视图文件中时image_tag一切正常。

application_helper.rb

def display_portrait(candidate)
  if candidate.portrait_url
    image_tag(candidate.portrait_url.to_s, :size => "10x10")
  else
    image_tag("missing_portrait.png", :size => "10x10")
  end
end

查看.html.erb

<%= display_portrait candidate %> DOES NOT GENERATE HEIGHT AND WITH ATTR'S
<%= image_tag("missing_portrait.png", :size => "10x10") %> DOES GENERATE ATTR'S

帮助程序仍然使用正确的源生成定位点;它只缺少高度和宽度属性。

感谢您抽出宝贵时间提供帮助,

迈克尔

首先通过在显示纵向方法中写入放置语句进行检查,如果条件然后检查什么是

以这种方法的参数出现。

您也可以在视图中执行此操作

   <%= image_tag(@image.portrait.url(:thumb):alt => "Description") %>

希望对您有所帮助...

application_helper.rb

def display_portrait(candidate)
  if candidate == 1
    image_tag(candidate, :size => "10x10")
  else
    image_tag("missing_portrait.png", :size => "10x10")
  end
end

新.html.erb

在这种观点下,

<%= display_portrait 1 %>

生成

<img alt="1" height="10" src="/assets/1" width="10" />

<%= display_portrait 0 %>

生成

<img alt="Missing_portrait" height="10" src="/assets/missing_portrait.png" width="10" />

您的 If 条件一定有问题。

如果我是你,我在任何情况下都不会使用"size",除非你不关心IE<9。我宁愿使用样式属性。

PS:特别是对于这个问题,我会尝试使用宽度:和高度:看看这是否会改变任何东西。我知道 Rails 中的一些助手根据调用它们的位置有不同的行为。

最新更新