问题
我有一个运行三元运算的帮助程序方法。 结果操作数都是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 中的一些助手根据调用它们的位置有不同的行为。