
Usando CKEditor com Rails
Você tem um blog escrito em rails mas não existe formatação nas postagens? o CKEditor pode te ajudar, ele cria uma barra de formatação.
Começando
Vamos começar criando um novo projeto através do comando rails new blog no terminal.
Abra o arquivo Gemfile e insira
...
gem 'ckeditor'
...Execute o comando bundle install no terminal
Adicione a linha abaixo dentro do arquivo config/initializers/assets.rb;:
Rails.application.config.assets.precompile += %w( ckeditor/*)Dentro do arquivo config/routes.rb digite mount Ckeditor::Engine => '/ckeditor' O resultado deve ser esse:
Rails.application.routes.draw do
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
mount Ckeditor::Engine => '/ckeditor'
endEm app/assets/javascripts/application.js faça a importação do arquivo:
...
//= require ckeditor/init
//= require_tree .Para exemplificar melhor iremos criar um modelo de postagem para utilizar o CKEditor
rails g scaffold Post title body:textNão costumo usar o scaffold com frequência porque pode viciar e você deixa de aprender muitas coisas utilizando esses comandos automatizados. Então, se liga!
Execute o comando rake db:migrate para criar a tabela no banco de dados.
Até este ponto o nosso formulário para inserção da notícia está assim:

Para inserir a barra de formatação iremos editar o arquivo partial que está localizado em app/views/posts/_form.html.erb, alterando a linha que contém form.text_area para form.cktext_area.
<%= form.cktext_area :body, id: :post_body, ckeditor: { language: 'pt-BR'} %>Logo, o formulário deverá se apresentar desta forma:

Mas ao salvar um texto com edição ele aparecerá da seguinte forma:

Para corrigir isso basta adicionar o método raw antes da chamada do atributo body. Podemos alterar essa opção em app/views/posts/show.html.erb
<%= raw @post.body %>E em app/views/posts/index.html.erb
<td><%= raw post.body %></td>O resultado final deve parecer com este:

Essa é a forma básica de integração do CKEditor com um projeto Ruby on Rails, se ficou alguma dúvida ou outra coisa mais, pode entrar em contato comigo.