我有以下<tr>
我的表格中的标签
<% if user.company.nil? %>
<tr class="error">
<% else %>
<tr>
<% end %>
<td><%= user.name %></td>
</tr>
我想添加另一个 if 语句
<% if user.disabled? %>
<tr class="disabled">
<% end %>
所以当其中两个语句是true
时我希望收到:
<tr class="error disabled">
我知道我应该将其移至帮助程序,但如何为扩展类编写良好的 case 语句取决于此语句?
最佳答案
def tr_classes(user)
classes = []
classes << "error" if user.company.nil?
classes << "disabled" if user.disabled?
if classes.any?
" class=\"#{classes.join(" ")}\""
end
end
<tr<%= tr_classes(user) %>>
<td><%= user.name %></td>
</tr>
但是好的风格是:
def tr_classes(user)
classes = []
classes << "error" if user.company.nil?
classes << "disabled" if user.disabled?
if classes.any? # method return nil unless
classes.join(" ")
end
end
<%= content_tag :tr, :class => tr_classes(user) do -%> # if tr_classes.nil? blank <tr>
<td><%= user.name %></td>
<% end -%>
关于ruby-on-rails - 在 View 中扩展 html 类的推荐模式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14027128/