Визуализация частичных форм в Trailblazer Cells

В моей камере Trailblazer я отрисовываю довольно динамичную форму. Я хотел бы сделать что-то вроде этого:

концепции / card_form / просмотров /_deck_form.erb*

<%= simple_form_for [parent,card] do |f| %>
   <div class='row'>
     <div class='col-md-6'>
       <%= render '_target_sentence', locals: { f: f } %>
     </div>

концепции / card_form / просмотров /_target_sentence.erb

 <%= f.input :target_sentence_text,
        input_html: { class: 'target-sentence', value: card.target_sentence.sentence },
        label: "#{target_language} Sentence" %>

В части _target_sentence есть немного больше, но я упростил это здесь. Проблема в том, что я не могу пройти через построитель форм

Код выше дает:

wrong number of arguments (given 2, expected 0..1)

Еще один вариант:

<%= render '_target_sentence' %>

undefined local variable or method `f' for #<CardForm::Cell:0x007fc8eb7eaa48>

1 ответ

Я настоятельно рекомендую избегать использования партиалов при использовании ячеек.

Одна из главных причин использования ячеек - не использовать частичные. Вместо этого я бы порекомендовал создать ячейку с именем TartgetSentence, которая будет принимать параметры и создать это "частичное" представление, а затем вызвать эту ячейку вместо render "_target_sentece" ты делаешь.

Ячейки являются объектами ViewObject, поэтому вы должны рассматривать их как объекты. Определите их один раз столько, сколько вам нужно, а затем создайте свою "основную" ячейку и соответствующий вид из этих объектов представления, а затем вызывайте их, когда они вам нужны. Это частично причина того, что они быстрее, чем частичные.

PS: Вы также можете зайти на наш официальный канал Gitter для Trailblazer - вы можете получить помощь там быстрее. https://gitter.im/trailblazer/chat

Другие вопросы по тегам