这个问题与我几个月前问的一个问题有关:Simple_Fields_For: Multiple Blank Lines on a Form
因为我需要在带有标题的表单上创建许多空白日记帐行,然后在其中创建多个记录:日记帐标题和许多日记帐行。问题得到了解答,我开始工作了。
但是,我有一个后续问题:
我最终构建了不必要的空白日记行,以便表单中有足够的空间供用户添加行。然而,当我执行创建时,如果没有填写所有行,我最终会在表中出现几个“空白”条目。
是否有 Railsy 方法来过滤掉这些行,以便在创建事务时忽略它们?
我想我可以预处理参数,或者一次添加一行检查,但我更喜欢一种更适合 Rails 的方法。有吗?
最佳答案
我猜您想在渲染 fields_for 时从集合中过滤掉一些内容。
fields_for 接受第二个参数,其中包含集合中的元素。默认情况下,整个集合都会被传递,或者您可以通过提供过滤条件来覆盖。
<%= f.fields_for :journal_lines,@journal.journal_lines.present? do |jl| %>
<% end %>
希望这对其他人将来有帮助。
关于ruby-on-rails-4 - 创建交易时过滤掉不必要的fields_for记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27353507/