Jak ładnie i szybko radzić sobie z takimi potworkami w hamlu?
#some_div{ :style => "#{'display:none;' if @some_collection.blank?}" }
#some_div{ :class => "#{'some_class' if @some_collection.blank?}" }
Czy może zostawiać to jak jest i nie pisać za dużo helperów?
Tak na szybko przychodzi mi do głowy:
[code=Ruby]def hide_if(condition)
‘display:none;’ if condition
end
#some_div { :style => hide_if(@some_collection.blank ?)}[/code]
i analogicznie
[code=Ruby]def set_class_if(class_name, condition)
class_name if condition
end
#some_div { :class => set_class_if(‘some_class’, @some_collection.blank ?) }[/code]
A może coś takiego?
[code=ruby]# helper
module ApplicationHelper
def hidden_div_if(condition, &block)
if condition
concat("
", block.binding)
end
yield
if condition
concat("
")
end
end
end
widok
<% hidden_div_if(true) do %>
Test
<% end %>[/code]
W hamlu także powinno to działać.
Haml w wersji 3 akceptuje tablice dla id i class, więc można coś pokombinować
http://beta.haml-lang.com/docs/yardoc/file.HAML_CHANGELOG.html
tcz
May 11, 2010, 7:21pm
5
Helpery są bardzo przydatne przy większej plątaninie.
Myślę, że tematyczne i poniższe wystarczy w tak prostych przypadkach.
#some_div{ :style => @some_collection.blank? && 'display:none;' }