0

我创建了一个辅助方法来动态更改表格中某些行的背景颜色:我的 html 如下所示:

<% @treatments.each do |f| %>
<tr class="<%= category_table_row_class(f.category) %>">
.....

还有我的辅助方法:

module ApplicationHelper
def category_table_row_class(category)
    { 0 => "success", 1 => "warning", 2 => "error", 3 => "info" }[category.id]
    end
end

但是我有一些问题,我得到了错误:

Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id

我希望有人能帮助我吗?谢谢

4

1 回答 1

5

看起来您的一种治疗方法没有类别。你可以做很多事情,一些建议是:

  • 添加验证Treatment以强制类别
  • 当类别为 nil 时,在帮助程序中设置默认返回值

作为开始,我将以下内容添加到帮助程序中:

module ApplicationHelper
  def category_table_row_class(category)
    return "a_suitable_class" if category.nil?

    { 0 => "success", 1 => "warning", 2 => "error", 3 => "info" }[category.id]
  end
end
于 2013-08-01T16:15:59.857 回答