这个问题与我几个月前问过的问题有关: Simple_Fields_For:表单上有多个空白行
为此,我需要在带有标题的表单上创建许多空白日记帐行,然后在其中创建几条记录:日记帐标题和许多日记帐行。这个问题得到了回答,我让它工作了。
但是,我有一个后续问题:
我最终构建了比必要的更多的空白日记帐行,以便表单中有足够的空间供用户添加行。但是,当我执行创建时,如果没有填写所有行,我最终会在表中出现几个"空白"条目。
有没有一种 Railsy 方法来过滤掉这些行,以便在创建事务时忽略它们?
我想我可以预处理参数,或者一次添加一行,但我更喜欢更适合 Rails 的方法。有吗?
我想你想在渲染fields_for时从你的收藏中过滤掉一些东西。
fields_for 接受包含集合中元素的第二个参数。默认情况下,将传递整个集合,或者可以通过提供筛选条件进行覆盖。
<%= f.fields_for :journal_lines,@journal.journal_lines.present? do |jl| %>
<% end %>
希望这对将来的其他人有所帮助。