3

ブログのコメント システムに CKEditor を統合しましたが、新しいページを読み込んだときに問題なく表示されます。

ただし、返信コメントについては、各コメントの下にある「このコメントに返信」リンクから新しいコメント フォームを開く JavaScript アクションがあります。この場合、CKEditor はロードされません (基本的な非 CKEditor テキスト領域を取得するだけです)。CKeditor が正しく読み込まれるように、javascript ファイルに何かを追加する必要がありますか?

投稿/show.html.erb

<%= @post.content %>
<%= render 'comments/form' %> #this CKEditor form renders fine when the page loads
<%= @post.comments %>

コメント/_form.html.erb

<%= simple_form_for(@comment, remote: true) do |f| %>
  <%= f.hidden_field :parent_id %>
  <%= f.cktext_area :content, :input_html => { :ckeditor => { :toolbar => 'Basic' } }, :class => "comment_input" %>
<%= f.button :submit %>

コメント/new.js.erb

$('#comment_<%= @comment.parent.id %>').append("<%= escape_javascript(render 'form') %>");

コメント/_comment.html.erb

<div id="comment_<%= comment.id %>">
  <%= comment.content.try(:html_safe) %>
  <%= link_to "reply to this comment", new_comment_path(:parent_id => comment), remote: true %>
</div>
4

1 に答える 1

1

エディターの新しいインスタンスを作成する必要があります。comments/new.js.erb にフォームを追加した後:

CKEDITOR.replace('id_of_textarea',{
    :toolbar => 'Basic'
});

「id_of_textarea」の代わりに任意のセレクターを使用できるかどうかはわかりません。そうでない場合、テキストエリアには一意の ID が必要です。エディター インスタンスを作成する別の方法もありますが、自分で試したことはありません。

于 2013-01-23T21:46:34.200 に答える