0

我认为我有这样的代码:

<% @items.each do |item| %>
<tr<%= raw(item.presence ? '' : ' class="opaque"') %>>
...
<td><%= item.presence ? 'Yes' : 'No' %></td>
</tr>
<% end %>

这是控制器中的请求:

@items = Item.where(:type_id => @type.id).order('brand ASC, name ASC').limit(limit).offset((@page-1)*limit)

'presence' 字段只是 bool,第一个项目中的 nil 尽管第一个获取项目的存在字段是 nil,但它不会返回第一行的类 attr(就像它不是 nil 或 true),但第二个检查返回正确的值(“否”)。在具有 false 或 nil 值的其他行中,它在两次检查中都返回正确的值。这是一个错误,还是我做错了什么?

导轨 3.0.0,Postgres 8.4

4

1 回答 1

0

添加 ? 到场帮助...

<% @items.each do |item| %>
<tr<%= raw(item.presence? ? '' : ' class="opaque"') %>>
...
<td><%= item.presence? ? 'Yes' : 'No' %></td>
</tr>
<% end %>
于 2010-11-29T21:20:01.780 回答