帮助器中的image_tag没有传递要查看的选项

时间:2012-05-08 15:12:11

标签: html ruby-on-rails ruby-on-rails-3

问题

我有一个运行三元操作的辅助方法。结果操作数都是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

view.html.erb

<%= display_portrait candidate %> DOES NOT GENERATE HEIGHT AND WITH ATTR'S

<%= image_tag("missing_portrait.png", :size => "10x10") %> DOES GENERATE ATTR'S

助手仍然会生成具有正确来源的锚点;它只缺少高度和宽度属性。

感谢您花一点时间提供帮助,

迈克尔

3 个答案:

答案 0 :(得分:0)

如果条件然后检查什么是

,首先通过显示纵向方法中的write puts语句进行检查

进入这种方法的参数。

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

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

希望它会帮助你......

答案 1 :(得分:0)

<强> 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

<强> new.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条件肯定有问题。

答案 2 :(得分:0)

除非你不关心IE&lt; 9,否则我不会在任何情况下使用'size'。我宁愿使用样式属性。

PS:特别是对于这个问题,我会尝试使用width:和height:来查看是否有任何改变。我知道Rails中的一些帮助程序具有不同的行为,具体取决于它们的调用位置。