我非常喜欢rails_admin,但我的客户不喜欢CKEditor。这真的是WYSIWYG在这个宝石上的唯一选择吗?有没有办法将tinyMCE与rails_admin一起使用?
答案 0 :(得分:5)
在RailsAdmin(在Rails 3.1上)努力让CKEditor正常工作之后,我使用了tinymce: 它运作良好,可在几分钟内完成:
在你的gemfile中添加:
gem 'tinymce-rails'
加上你在rails_admin.js.erb中包含一行:
require_asset 'tinymce-jquery'
您可能需要将整个文件(rails_admin.js.erb)
从gem复制到/assets/javascripts/rails_admin/
在你这样做之前。
最后,您还需要在视图文件中添加一些jquery
app/views/rails_admin/main/edit.html.haml
和app/views/rails_admin/main/new.html.haml
:javascript
jQuery(function() {
jQuery('textarea').tinymce({
theme: 'advanced'
});
});
这会将Wysiwyg添加到所有文本区域字段。
答案 1 :(得分:1)
WYSIWYG编辑器通常只使用JavaScript功能覆盖HTML文本区域元素。所以任何编辑都应该在理论上工作。您可以将代码中的引用替换为tinyMCE,确保已正确安装所有文件,然后将tinyMCE设置为使用文本区域控件的ID。
对于后端编程应该没有什么区别,客户端接口用于在文本区域中创建HTML。
答案 2 :(得分:1)
伟大的andistuder, 我建议你的解决方案的修改版本。
将gem中的rails_admin.js.erb
复制到项目路径中的/assets/javascripts/rails_admin/
。
添加以下行:
...
require_asset 'tinymce-jquery'
%>
jQuery(function() {
jQuery('textarea').tinymce({
theme: 'advanced'
});
});
所有这些都会像魅力一样!
答案 3 :(得分:0)
我以稍微不同的方式实现了这个目的,这对于:
rails_admin (0.8.1)
tinymce-rails (4.4.1)
<强> Gemfile
强>
gem 'tinymce-rails'
<强> app/assets/javascripts/rails_admin/custom/ui.js
强>
//= require tinymce-jquery
var admin = {
initTinyMce: function() { tinyMCE.init({ selector: "textarea[name$='_html]'" }) }
}
$(function() {
admin.initTinyMce();
$(document).on('rails_admin.dom_ready', function() {
admin.initTinyMce();
});
});
https://github.com/sferik/rails_admin/wiki/Theming-and-customization
ui.js
位置rails_admin.dom_ready
https://github.com/spohlenz/tinymce-rails
//= require tinymce-jquery
:不需要红宝石插值,我喜欢使用清单文件自定义:
textarea[name$='_html]'
将转换字段以_html
结尾的所有文字区域,即我存储的内容,以及我如何命名我的领域