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