2014-12-08 50 views
1

这个问题是关系到一个,当我问一个几个月前:Simple_Fields_For: Multiple Blank Lines on a Form过滤掉不必要的fields_for记录创建事务

在,我需要在头创建的窗体上的一些空白日记线然后我创建了几个记录:日志标题和一些日志行。问题得到了回答,我得到了它的工作。

不过,我有一个跟进的问题:

我结束了建造更多的空白日记帐行比必要的,以便有足够的空间形式为用户添加行。但是,当我执行创建时,如果不是所有行都被填充,我最终会在表中填入几个“空白”条目。

是否有Railsy的方式来过滤掉这些行,以便在创建事务时忽略它们?

我想我可以预先处理PARAMS,或者一次一行地添加一行代码,但我宁愿选择更适合Rails的方法。有一个吗?

回答

1

我想你想在呈现你的fields_for的时候从你的集合中过滤掉一些东西。

fields_for接受包含集合中元素的第二个参数。默认情况下,整个集合已通过,或者您可以通过提供过滤条件进行覆盖。

<%= f.fields_for :journal_lines,@journal.journal_lines.present? do |jl| %> 

<% end %> 

希望这有助于未来的其他人。

+0

感谢prasann,但它是相反的。如果我在表单上有许多'空白'行,当我创建记录时,它会为表单中的每一行(包括空白行)向数据库添加一条记录。我只需要为输入数据的行添加记录。 – 2015-09-29 00:45:38