10

我无法让 galetahub ckeditor gem 为我使用 Rails 4。我在网上搜索了任何问题,但找不到任何问题。我完全按照说明进行操作。

  • 我在我的 Gemfile 中包含 gem "ckeditor"
  • 我包括 gem "carrierwave" 和 gem "mini_magick"
  • 我跑rails generate ckeditor:install --orm=active_record --backend=carrierwave
  • 我跑rake db:migrate
  • 在 application.rb 我包括config.autoload_paths += %W(#{config.root}/app/models/ckeditor)
  • 在 routes.rb 我有mount Ckeditor::Engine => '/ckeditor'
  • 我正在使用 SimpleForm,所以我将以下 ERB 粘贴到<%= f.input :description, as: :ckeditor %>我的视图中。

我认为就是这样。但是由于某种原因,我的文本区域没有转换为 CKeditor 区域。

4

6 回答 6

24

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>
于 2013-09-29T10:29:24.657 回答
7

我在使用 rails 4 时遇到了同样的问题,显然问题是表单助手

form.cktext_area

或者在你的情况下

f.input :description, as: :ckeditor

它不会生成它应该生成的内容,您不必手动加载编辑器,您唯一需要做的就是将“ckeditor”类添加到您的文本区域,它会自动加载,如下所示:

f.cktext_area :body, :class => 'ckeditor'
于 2014-02-06T08:41:10.407 回答
1

ajkumar 基本上已经很好地回答了这个问题,但如果你仍然迷路,你需要做的就是下载 js 文件,将其包含在你的 html 中,在 HTML 中包含一个脚本片段以激活某个 textarea 标签 ID 上的 ckeditor,然后将要更改的“textarea”标签的类更改为ckeditor。下面的快速示例

<!DOCTYPE html>
<html>
    <head>
        <title>A Simple Page with CKEditor</title>
        <!-- Make sure the path to CKEditor is correct. -->
        <script src="../ckeditor.js"></script>
    </head>
    <body>
        <form>
            <textarea name="editor1" id="editor1" rows="10" cols="80">
                This is my textarea to be replaced with CKEditor.
            </textarea>
            <script>
                // Replace the <textarea id="editor1"> with a CKEditor
                // instance, using default configuration.
                CKEDITOR.replace( 'editor1' );
            </script>
        </form>
    </body>
</html>
于 2014-07-18T18:17:37.083 回答
1

同时,Galetahub gem 已更新,但必须在您的应用程序中手动更新。阅读 github 页面:https ://github.com/galetahub/ckeditor 。

于 2013-12-31T08:44:29.997 回答
0

galetahub gem 目前在 Rails 4 上被破坏。这个工作正常:https ://github.com/tsechingho/ckeditor-rails

于 2013-10-13T04:34:05.760 回答
0

如果您在使用活动管理员时遇到问题,请确保输入:

config.register_javascript 'ckeditor/ckeditor.js'
config.register_javascript 'ckeditor/init.js'

进入config/initializers/active_admin.rb

于 2015-09-11T13:13:28.143 回答