Quando se trata de desenvolvimento de software, quase todo projeto segue o mesmo dilema do desenho abaixo: Comecei a "brincar" com Ruby on Rails 3 gracas a influencia de um amigo. Desenvolver usando esse framework e algo muito divertido. Tudo estava indo bem ate esbarrar em um problema: Precisava usar um editor html em um campo de texto do meu site (um dos varios que fiz apenas com fins didaticos) e nao sabia como implementar um. A tarefa parecia ser mais dificil pelo fato de estar utilizando a gem Rails Admin para criar o painel administrativo do site. Foi entao que encontrei no github uma versao do ckeditor para Rails que era compativel com essa gem.Ja conhecia o CkEditor de "outros carnavais", entao resolvi seguir os passos do turorial de instalacao contido nele. Para minha surpresa, nao consegui instala-lo (sim, achei isso estranho. Em geral, as coisas sao bem simples de serem feitas no Rails). Resolvi estudar a documentacao um pouco mais a fundo e depois de alguns testes, descobri a melhor forma de instala-lo.Nesse exemplo, quero usar o CkEditor no meu modulo Posts, que possui apenas titulo e conteudo (onde quero utilizar o editor).Primeiramente, precisamos modificar o arquivo Gemfile, para adicionar a lista de gems que iremos utilizar no projeto. Basicamente, usei RailsAdmin para o painel, Paperclip para upload de imagens, Therubyracer para javascript e Devise para autenticacao. No seu Gemfile, adicione as seguintes linhas:gem 'rails_admin', :git => 'git://github.com/sferik/rails_admin.git'gem 'paperclip' gem 'therubyracer'gem 'ckeditor'gem 'devise'Para instalar todas as gems listadas no Gemfile, execute o comando bundle install:bundle installDepois de devidamente instaladas, gere os arquivos necessarios ao CkEditor usando o comando abaixo. os parametros 'path' e 'backend' sao o "pulo do gato" desse passo-a-passo, pois vao configurar o caminho dos scripts e a gem responsavel pelo upload dos arquivos respectivamente:$ rails generate ckeditor:install --path=public/assets --backend=paperclipFeito isso, e necessario gerar o model do CkEditor (sim, ele possui um model):$ rails generate ckeditor:modelsO CkEditor utiliza o banco de dados para gravar os meta-dados dos arquivos enviados pelo seu sistema de upload. Ele nao funcionara sem isso. Crie o arquivo db/migrate/create_ckeditor.rb com o seguinte conteudo:class CreateCkeditor < ActiveRecord::Migration def self.up create_table :ckeditor_assets do |t| t.string :data_file_name, :null => false t.string :data_content_type t.integer :data_file_size t.integer :assetable_id t.string :assetable_type, :limit => 30 t.string :type, :limit => 30 # Uncomment it to save images dimensions, if your need it# t.integer :width# t.integer :height t.timestamps end add_index "ckeditor_assets", ["assetable_type", "type", "assetable_id"], :name => "idx_ckeditor_assetable_type"add_index "ckeditor_assets", ["assetable_type", "assetable_id"], :name => "idx_ckeditor_assetable" endendCom esse arquivo, voce podera criar a tabela responsavel por gravar os meta-dados que o editor precisa. crie a base de dados usando o rake:rake db:migrateAgora, para finalizar (ate que enfim), configure o rails_admin para usar o ckeditor, adicionando o conteudo abaixo no model correspondente:rails_admin do RailsAdmin.config do |config| config.model Post do create do field :titulo field :conteudo do ckedior true end end end endendIsso deve ser suficiente. Nesse caso, coloquei esse conteudo no meu model Post. Assim, toda vez que ele for carregado, ira configurar o campo 'conteudo' para usar o CkEditor. Para mais detalhes, consulte o manual do