nkt*_*kyo 1 ruby ruby-on-rails
我有一个显示嵌套关系的表单.渲染嵌套子对象的调用如下所示:
<% if @fpimgblocks %>
??<% f.fields_for @fpimgblocks do |builder| %>
????<%= render 'fpimgblock_fields', :f => builder %>
??<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
@fpimgblocks是一个查找的结果,我已经验证了没有结果,所以我希望这不会渲染.但是,即使未初始化对象,也会呈现局部.然后,当我提交表单时,这会返回一个nil_class错误.
if语句中的语法是错误还是什么?我已经尝试过更改为"除非@ fpimgblocks.nil?但没有变化.
@fpimgblocks并不像你期望的那样是零.因为它是查找的结果,所以它实际上是一个空数组.改变这个:
<% if @fpimgblocks %>
Run Code Online (Sandbox Code Playgroud)
对此:
<% unless @fpimgblocks.empty? %>
Run Code Online (Sandbox Code Playgroud)
它会奏效.我希望这有帮助!
| 归档时间: |
|
| 查看次数: |
775 次 |
| 最近记录: |