2014-12-08 2 views
1

Этот вопрос связан с одной я спросил пару месяцев назад: Simple_Fields_For: Multiple Blank Lines on a FormФильтрация ненужных fields_for записи при создании транзакции

В том, что мне нужно было создано несколько пустых строк журнала по форме с заголовком в который затем создал несколько записей: заголовок журнала и ряд строк журнала. На этот вопрос был дан ответ, и я получил его работу.

Однако, у меня есть следить за вопрос:

Я в конечном итоге строить больше пустых строк журнала, чем это необходимо, так что есть много пространства в форме для пользователей, чтобы добавить строки. Однако, когда я выполняю создание, я получаю несколько «пустых» записей в таблице, если не все строки заполнены.

Есть ли Railsy способ отфильтровать эти строки, чтобы они игнорировались при создании транзакции?

Я полагаю, что я мог предварительно обработать параметры или добавить строки по очереди, когда я иду, но я бы предпочел более подходящий метод Rails. Есть ли это?

ответ

1

Я думаю, вы хотите отфильтровать несколько вещей из своей коллекции, рендеринга ваших полей.

fields_for принимает второй параметр, который содержит элементы в коллекции. По умолчанию вся коллекция передается или вы можете переопределить, задав условие фильтра.

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

<% end %> 

Надеюсь, это поможет кому-то еще в будущем.

+0

Спасибо, прасанн, но это наоборот. Если у меня есть несколько «пустых» строк в форме, когда я создаю запись, она добавляет запись в базу данных для каждой строки в форме, включая пустые строки. Мне нужна запись только для строк, в которые введены данные. –

Смежные вопросы