Cách nào có thể đọc và/hoặc súc tích nhất để viết điều này trong ERB? Viết phương pháp của riêng tôi là không thích hợp hơn, vì tôi muốn truyền tải một giải pháp sạch hơn cho người khác trong công ty của tôi.Bao gồm thẻ có điều kiện trong Rails/ERB
<% @items.each do |item| %>
<% if item.isolated? %>
<div class="isolated">
<% end %>
<%= item.name.pluralize %> <%# you can't win with indentation %>
<% if item.isolated? %>
</div>
<% end %>
<% end %>
== Cập nhật ==
tôi đã sử dụng một phiên bản chung chung hơn của câu trả lời Gal của đó là thẻ thuyết bất khả tri.
def conditional_wrapper(condition=true, options={}, &block)
options[:tag] ||= :div
if condition == true
concat content_tag(options[:tag], capture(&block), options.delete_if{|k,v| k == :tag})
else
concat capture(&block)
end
end
Cách sử dụng ==
<% @items.each do |item| %>
<% conditional_wrapper(item.isolated?, :class => "isolated") do %>
<%= item.name.pluralize %>
<% end %>
<% end %>
Nghĩ rằng tôi muốn tránh điều này. Nó cuối cùng là hướng tôi đã chọn. –