我对 ruby on rails 和在 rails 3 和 mac osx8 中构建基本应用程序比较陌生。
我在视图中的每个循环迭代中遇到了一个额外的空白数据集,这里:
<% @exercise.instruction_types.each do |instruction_type| %>
<li><a href="#tab<%= instruction_type.id %>" data-toggle="tab"><%= instruction_order %>. <%= instruction_type.name %></a></li>
<% instruction_order = instruction_order + 1 %>
<% end %>
这在节目中创造了一个额外的空白 li 项目。当我加载该视图时,我看到循环的额外迭代,结果字段的值为空。即使数组是 [] 也会发生这种情况。
指令类型模型:
class InstructionType < ActiveRecord::Base
has_many :instructions
has_many :exercises, :through => :instructions
attr_accessible :name
end
这是控制器:
def play
..
@instruction_types = @exercise.instruction_types.build
..
end
经过一些研究并遵循此处的建议从我的 .each 循环中获取流氓迭代后,我 在 view.html.erb 中放置了这个实例变量检查
<%= @exercise.instruction_types.inspect %>
渲染视图输出
[#<InstructionType id: 1, name: "Content", created_at: "2013-06-03 03:11:56", updated_at: "2013-06-03 03:11:56">,...
<InstructionType id: nil, name: nil, created_at: nil, updated_at: nil>}
我想知道 nil 数据是如何创建的,将来如何防止它,以及现在如何删除它。