Визуализация частичных форм в 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