私はrails_adminが本当に好きですが、私のクライアントはCKEditorが好きではありません。これは本当にこの宝石のWYSIWYGの唯一のオプションですか?rails_adminでtinyMCEを使用する方法はありますか?
4 に答える
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 が追加されます。
WYSIWYG エディターは通常、HTML テキスト領域要素を JavaScript 機能でオーバーレイするだけです。したがって、どのエディターも理論上は機能するはずです。コード内の参照を tinyMCE に置き換え、すべてのファイルが適切にインストールされていることを確認してから、テキスト領域コントロールの ID を使用するように tinyMCE を設定します。
テキスト領域で HTML を作成するためにどのクライアント側インターフェースを使用するかによって、バックエンド プログラミングに違いが生じることはありません。
偉大な学生、私はあなたのソリューションの修正版を提案します。
rails_admin.js.erb
を gem から/assets/javascripts/rails_admin/
プロジェクト パスの にコピーします。次の行を追加します。
...
require_asset 'tinymce-jquery'
%>
jQuery(function() {
jQuery('textarea').tinymce({
theme: 'advanced'
});
});
そして、すべてが魔法のように機能します!
私はこれを少し異なる方法で達成しました。
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
: Ruby 補間は不要で、マニフェスト ファイルを使用するのが好きです
カスタム:
- 初期化を2回実行する必要がありましたが、これまでのところすべて問題ないようです
- セレクターは、フィールドが で終わるすべてのテキスト領域
textarea[name$='_html]'
を変換します。_html