我有一个复杂的Web应用程序,当我选择一个记录时,在页面的上半部分有一个多记录集,在页面的下半部分有单个记录的详细信息,并且作为下部细节部分的一部分,我有部分内容我用AJAX更新了来自模型关系的多记录表,但我遇到的问题是当我尝试通过记录集进行循环并尝试通过该记录的关系获取数据时,记录返回{{ 1}}。这是我的意思的一个例子。
nil
我正在使用它来获取<table>
<% @file.file_entities.each do |i| %>
<tr>
<td id="name"><div><a href="#"><%= truncate("#{i.entity.FirstName} #{i.entity.LastName}", :length => 17) %></a></div></td>
<td id="position"><select><option>Buyer</option><option>Seller</option><option>Lender</option><option>Referrer</option></select></td>
<td id="pr"><%= check_box_tag('pr_out', i.PRSent, i.PRSent?) %></td>
<% if EntityContact.where(:EntityID => i.entity.EntityID).phones_callable.first.inspect == nil -%>
<td id="phone"><div>NONE</div></td>
<% else %>
<td id="phone"><div><%= EntityContact.where(:EntityID => i.EntityID).phones_callable.first.ContactDesc %>: <%= EntityContact.where(:EntityID => i.EntityID).phones_ca>
<% end %>
</tr>
<% end %>
</table>
ContactDesc
它给了我一个nil EntityContact.where(:EntityID => i.EntityID).phones_callable.first.ContactDesc
模型对象,但如果我只将EntityContact
放在这个循环中,那么它会给我i.EntityID
,如果我替换EntityID
在我上面的where子句中有一个实际的i.EntityID
然后它将返回该记录就好了。所以我认为ID
不适用于我的where子句,但我不知道为什么?
答案 0 :(得分:0)
我弄清楚了,愚蠢的我并没有意识到如果那个关系中没有记录,它会抛出一个异常,所以我只是添加了一个if语句来检查在拉数据之前是否存在记录,我的坏。