2016-09-09 12 views
1

Ckeditor gemとSimpleフォームを使用して複数のリッチテキストエディタでフォームを構築するネストされた属性フォームがあります。 BodyのテキストエディタとFooterのテキストエディタの1つです。CkeditorとCocoonのネストされた属性の追加のリッチテキストエディタが表示されない

enter image description here

関係は、私は彼らが望むよう、ユーザーができるだけ多くフッターを追加できるようにしたいbody has many footers

です。これを実装するには、Cocoon gemを使用しています。 ユーザーがAdd additional footerをクリックすると、フォームに問題がありますが、それはCkeditor rich text editorという正規形ではありません。

enter image description here

フォーム

= f.simple_fields_for :footers do |footer| 
    = render 'footer_fields', f: footer 
.links 
    = link_to_add_association 'Add Additional Footer', f, :footers 

部分

= f.input :content, label: 'Footer', as: :rich_text_mergefields, input_html: {class: 'span12'} 

はコクーンまたは他のどのような方法でその場でCkeditorテキスト領域を追加するためにとにかくありますか?

+1

私はCKEditorバージョンの少なすぎるを知っているが、理論的にはあなたが[繭にコールバック]使用する必要があります(https://github.com/nathanvda/cocoon#callbacks-upon-insert-and-remove-of- item)ので、 'after-insert'はjsを呼び出してCkEditorを有効にします(CkEditorが許可している場合)。 – nathanvda

+1

@nathanvda私は正しい方向に向いてくれてありがとう。最終的な実装については以下を参照してください – srm

答えて

1

私は次のことをやりました。将来的に誰かを助けることを願っています。

= f.input :content, label: 'Footer', as: :rich_text_mergefields, input_html: { class: 'span12 footer-field'} 


$('#owner').on('cocoon:after-insert', function(_, element) { 
    id = $(element).index() + '_footer' 
    text_area = $(element[0]).find('.footer-field').attr('id', id); 
    config = $(element[0]).find('.footer-field').data('ckeditorOptions'); 
    CKEDITOR.replace(id, config); 
}); 
関連する問題