我有一个工作的编辑视图,我正在尝试添加CKEditor。我已经下载了CKEditor文件夹/文件并将它们放在my_app/vendor/assets/ckeditor/
中。我正在使用Rails 4,此文件夹包含在资产管道中。对于application.js,我已添加//= require ckeditor.js
并已添加到application.css @import "contents";
。
在我的编辑视图中,我(我想使用inline option):
<%= f.text_area :page, contenteditable: 'true' %>
<script>
CKEDITOR.disableAutoInline = true;
CKEDITOR.inline( 'image_page' );
</script>
问题:现在加载编辑视图时,文本字段不会显示为可编辑字段,而是显示为纯文本。没有办法编辑此文本,也没有CKEditor的标志。知道我做错了吗?
正在生成的页面源代码包括:
<textarea contenteditable="true" name="image[page]" id="image_page">
Arbor cubo vel.
</textarea>
<script>
CKEDITOR.disableAutoInline = true;
CKEDITOR.inline( 'image_page' );
</script>
更新:我通过将CKEditor文件从供应商文件夹移动到公用文件夹来实现它。 有人可能会确认CKEditor是否与资产管道兼容吗?
如果可能,我宁愿将它放在供应商文件夹中。 This old post以及this one引用类似的内容(如果我将<% var CKEDITOR_BASEPATH = '/ckeditor/'; %>
作为标题行放在application.html.erb
我的应用程序崩溃时出现错误dynamic constant assignment '.freeze
)。那些对CKEditor有更多经验的人能提供比这些旧帖子更明确的答案吗?
答案 0 :(得分:1)
可能是在textarea完全加载到DOM之前,脚本正在执行。尝试使用post加载包装器到你的脚本,如jquery&#39; s:
$(function(){
// ... your code
})
答案 1 :(得分:1)
尝试在ckeditor
下添加vendor/assets/javascripts
资源用于JavaScript文件,vendor/assets/stylesheets
用于CSS文件(在这些文件夹中分隔ckeditor资产)
每当资产引用另一个资产时,使用asset-url
帮助程序而不是url
,以便通过资产管道提供此资产
您还需要在vendor....
或//require
import
个文件夹的所有资产
一方面不是你可以使用ckeditor gem https://github.com/galetahub/ckeditor它会节省你很多时间,它也可以处理一些开箱即用的功能,如图片上传和ckeditor画廊