2011-12-27 55 views
0

我有一个带有布尔复选框的模型,当它被点击'true'时我想显示图像,如果没有点击'null'想显示什么都没有。在Rails 3.1中显示图像或什么都没有

迄今为止的观点被称为:

<%= image_tag(@dining.pets? ? 'petfriendly.png' : '', :title => 'Pet Friendly', :alt => 'Pet Friendly') %> 

空滴答“”这是我在没有尝试,但它只是给了我一个断开的链接图像。由于这是我个人试图解决这个问题的方法,而且我对rails的新手比较陌生,所以我不确定if/else是否是一种很好的方式来实现这个目标?

任何想法?谢谢!

回答

1

这可能是一点点短语法。

<%= image_tag('petfriendly.png', :title => 'Pet Friendly', :alt => 'Pet Friendly') if @dining.pets.present? %>

而且,漂亮的使用:alt属性;视力受损者会欣赏它。

+0

谢谢安德鲁 - 是的,ALT标签是一个好习惯。感谢您的答复!工作很好! – keade 2011-12-27 19:39:48

4

尝试像

<%= @dining.pets.present? ? image_tag('petfriendly.png') : '' %> 
+0

很好的回答。在这种情况下,我们还经常使用默认图像来保存布局。 – 2011-12-27 19:14:43

+0

感谢您的回复。请参阅下面的@Andrew Kuklewicz答案,就像我使用的答案一样,正如它显示更多具有用户友好属性的可访问选项。你的工作原理是一样的。谢谢! – keade 2011-12-27 19:39:18

+0

我确信你将能够转移到自己的标题和alt标签:p – tmaximini 2011-12-27 19:59:48

1

你可以尝试这样的

<%= image_tag('petfriendly.png') if @dining.pets %>