我有一个显示嵌套关系的表单。渲染嵌套子对象的调用如下所示:
<% if @fpimgblocks %>
<% f.fields_for @fpimgblocks do |builder| %>
<%= render 'fpimgblock_fields', :f => builder %>
<% end %>
<% end %>
@fpimgblocks是一个查找的结果,我已经验证了零结果,所以我希望这不会呈现。但是,即使未初始化对象,也会呈现局部。然后,当我提交表单时,这会返回一个nil_class错误。
if语句中的语法是错误还是什么?我已经尝试过更改为“除非@ fpimgblocks.nil?但没有变化。
答案 0 :(得分:6)
@fpimgblocks
并不像你期望的那样是零。因为它是查找的结果,所以它实际上是一个空数组。改变这个:
<% if @fpimgblocks %>
到此:
<% unless @fpimgblocks.empty? %>
它会起作用。我希望这有帮助!