如果返回的数据库值是特定数字,我只想添加一个HTML类。这是我试过的:
<ul class="dog-sizes-list">
<li <%= if given_size == 1 then puts "class='active'" end %>><img src="/assets/dogs/dog-icon.png" width="30px" /></li>
<li <%= if given_size == 2 then puts "class='active'" end %>><img src="/assets/dogs/dog-icon.png" width="40px" /></li>
<li <%= if given_size == 3 then puts "class='active'" end %>><img src="/assets/dogs/dog-icon.png" width="50px" /></li>
<li <%= if given_size == 4 then puts "class='active'" end %>><img src="/assets/dogs/dog-icon.png" width="60px" /></li>
</ul>
但是没有任何反应,也没有产生错误。此外,我在控制台中运行AR代码并返回正确的值。具体做法是:
given_size = Client.where(user_id: listing.client_id).first.dogsize
最佳方法是什么?
答案 0 :(得分:1)
您可以通过以下方式获得所需的结果:
<li class="<%= "active" if given_size == 1 %>"></li>
如果您经常使用这种方法,可以将其提取为辅助方法。帮助程序可以放在application_helper.rb文件或其他合适的位置
def class_for_thing(thing)
if thing == whatever
"blah"
else
"not-blah"
end
答案 1 :(得分:0)
没有“活动”条件,因为根据您的代码,所有项目都处于活动状态。
您似乎只想根据给定的尺寸自定义图像大小。如果是这样,更好的方法是在演示者中以模型或更好的方式定义它。
class Dog < ActiveRecord::Base
SIZE_AND_IMAGE = { '1': '30px', '2': '40px', '3': '50px', '4': '60px' }
# Can fallback to a default size of 30px if no size given
def image_size
given_size ? SIZE_AND_IMAGE[given_size.to_s] : '30px'
end
end
# In View
<ul class="dog-sizes-list">
<li><img src="/assets/dogs/dog-icon.png" width="#{@dog.image_size}" /></li>