Setting up tiny_mce_plus plugin in rails application
I recently had to struggle with setting up tiny_mce_plugin and spend a whole day trying to get it working. Troubleshooting it was very difficult since tiny_mce_plus plugin has dependencies on other plugins ( mentioned below) and there was no one place where everything was laid out to make it to work. I had to really dig in. The last step is the most important.
The following are the steps I had used to make it work on windows.
- Install ImageMagick: Download from http://www.imagemagick.org/script/binary-releases.php#windows. I had downloaded the zip version and extracted it in a directory. Make sure you set the PATH variable in your system environment to point to that dir.
- Install Mini Magick Plugin : Download from http://rubyforge.org/frs/?group_id=1358&release_id=12346. I had downloaded the zip version and extracted it in a directory. All that is needed is one file mini_magick.rb. You can put this in your applications lib directory. If you are installing a plugin then the plugin will be in vendor/plugins directory.
-
Install tiny_mce_plus: The following process uses git. Git for windows can be downloaded from http://code.google.com/p/msysgit/. Install git and then do the following:
cd vendor/plugins git clone git://github.com/devon/tiny_mce_plus.git script/generate tiny_mce_plus_migration rake db:migrate rake tiny_mce_plus:install
- Install tiny_mce_plus plugins:tiny_mce_plus is dependent on 3 plugins. Install these plugins, preferably from the package bundled with tiny_mce_plus.
- Authentication: tiny_mce_plus works on the premise that only authenticated users can be allowed to add rich text. The tiny_mce_model has an association with user. It uses login_required and current_user methods. It is preferred that you install the restful_authentication plugin.
- Javascript setings: Add the following in the layout view right above any other javascript directives.
- Controller settings:You need to make the controller which will be using the tiny_mce_plus to be aware of it by adding the following in the applicable controller.
- tiny_mce_model changes:This is the most important of all changes. This took me a whole lot of time to figure out. My save operation on tiny_mce_mode had been failing and was not giving me meaningful error [DEPRECATION WARNING: ActiveRecord::Errors.default_error_messages has been deprecated. Please use I18n.translate('activerecord.errors.messages').. (called from default_error_messages at C:/data/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/validations.rb:24)]. I had to use debugger to do some serious debugging. It was failing during validation in the attachment_fu plugin. The method validates_as_attachment in tiny_mce_model was tripping. After some research on the net found out that the :size option of the has_attachment method is mandatory and if not supplied gives validation error. The has_attachment options as used in the tiny_mce_module will not work. The following is what I have in my tiny_mce_mode ( what i added is in blue).
rake tiny_mce_plus:plugin The above command will install the plugins. If you want to install them individually, the following are the location. attachment_fu: git://github.com/technoweenie/attachment_fu.git responds_to_parent: http://responds-to-parent.googlecode.com/svn/trunk will_paginate: git://github.com/mislav/will_paginate.git
<%= javascript_include_tiny_mce_if_used %> <%= tiny_mce if using_tiny_mce? %> <%= javascript_include_tag :defaults %>
uses_tiny_mce(:options => AppConfig.default_mce_options, :only => [:new, :edit])
has_attachment :storage => :file_system,
:content_type => [:image, 'application/x-shockwave-flash'],
:max_size => 5.megabytes,
:size => 0.megabyte..5.megabytes,
:resize_to => '600x>',
:thumbnails => {:thumb => "100>", :medium => "290x320>", :large => "664>"},
:processor =>
:MiniMagick, :path_prefix => 'public/tiny_mce'
That is it. You are all set. So long…
References/Acknowledgement:
http://railsforum.com/viewtopic.php?id=6307
http://github.com/devon/tiny_mce_plus/tree/master
Tags: attachment_fu, has_attachment, image magick, imagemagick, install, linkedin, max_size, mini magick, mini_magick, min_size, photo.save, rails, responds_to_parent, rmagick, ror, ruby, ruby on rails, size, tiny_mce_plus, validates_as_attachment, will_paginate, windows