Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

rails 4 with CKeditor

I cannot get the galetahub ckeditor gem to work with Rails 4 for me. I searched for any problems online but cannot find any. I'm following the instructions exactly.

  • I include gem "ckeditor" in my Gemfile
  • I include gem "carrierwave" and gem "mini_magick"
  • I run rails generate ckeditor:install --orm=active_record --backend=carrierwave
  • I run rake db:migrate
  • Inside application.rb I include config.autoload_paths += %W(#{config.root}/app/models/ckeditor)
  • Inside routes.rb I have mount Ckeditor::Engine => '/ckeditor'
  • I'm using SimpleForm so I paste the following ERB <%= f.input :description, as: :ckeditor %> in my view.

And I think that's it. But my text area does not convert to a CKeditor area for some reason.

like image 886
Mike Glaz Avatar asked Sep 11 '13 23:09

Mike Glaz


2 Answers

STEP 1: Add gem 'paperclip' and gem "ckeditor" in your gemfile.

STEP 2: Bundle Install.

STEP 3: rails generate ckeditor:install --orm=active_record --backend=paperclip

STEP 4: Place config.autoload_paths += %W(#{config.root}/app/models/ckeditor) in application.rb

STEP 5: Place mount Ckeditor::Engine => "/ckeditor" if not present in routes.rb already and run db:migrate

STEP 6: Open application.html.erb and place this <%= javascript_include_tag 'ckeditor/ckeditor.js' %> in header.

STEP 7: Place this in footer(above the body tag) in application.html.erb

<script type="text/javascript">$(document).ready(function() {
    if ($('textarea').length > 0) {
        var data = $('textarea');
        $.each(data, function(i) {
            CKEDITOR.replace(data[i].id);
        });
    }
});</script>

STEP 8: Restart the WEBrick SERVER.

That's it.

Else

Download the CKEditor Zip file, extract the files and place them in the sub directory “javascripts/ckeditor”, add the main JS file to the layout..

javascript_include_tag 'ckeditor/ckeditor.js'

Place this in footer(above the body tag) in application.html.erb

<script type="text/javascript">$(document).ready(function() {
    if ($('textarea').length > 0) {
        var data = $('textarea');
        $.each(data, function(i) {
            CKEDITOR.replace(data[i].id);
        });
    }
});</script>
like image 156
ajknzhol Avatar answered Oct 14 '22 07:10

ajknzhol


I have the same problem using rails 4 and apparently the problem is that the form helper

form.cktext_area

Or in your case

f.input :description, as: :ckeditor

it's not generating what it supposed to generate, and you don't have to load the editor manually, the only thing you need to do is to is to add the class 'ckeditor' to your textarea and it will load automatically, like this:

f.cktext_area :body, :class => 'ckeditor'
like image 40
Humphryman Avatar answered Oct 14 '22 08:10

Humphryman