2017-11-02 8 views
1

私のトレイルブレイザーセルでは、かなりダイナミックなフォームをレンダリングしています。トレイルブレイザーセルで部分的なフォームをレンダリング

概念/ 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部分的にかなり多少ありますが、ここでは簡略化しました。問題は、私はFフォームビルダを渡すことはできませんです

上記のコードは与える:

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

別のバリエーション:

<%= render '_target_sentence' %> 

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

答えて

1

は、私は非常に、非常にお勧めセルを使用するときにパーシャルを使用しないようにします。

セルを使用する主な理由の1つは、パーシャルを使用しないことです。代わりに、TartgetSentenceというCellを作成し、paramsを取得し、その部分的なビューを作成してから、render "_target_sentece"の代わりにこのセルを呼び出してください。

セルはViewObjectsなので、それらをオブジェクトとして扱う必要があります。それらを必要な数だけ定義してから、これらのビューオブジェクトから「マスター」セルと対応するビューを作成し、必要に応じて呼び出すことができます。それは部分的には部分的なものよりも速い理由の一部です。

P.S .: トレイルブレイザーの公式Gitterチャンネルにお越しいただいても、すぐにヘルプを受けることができます。 https://gitter.im/trailblazer/chat

+0

ありがとうございました@konung私はGitterに投稿しました。私は、フィールドが現れるいくつかの条件付きロジックで複雑なフォームを分割する方法を望んでいましたが、フォームビルダーを回すことはできないようです。私はRailsの部分に戻ってしまった。解決策があれば、それを聞くことに興味があります。乾杯 – ardochhigh

関連する問題