• Home
  • Sobre
    • Gleidson photo

      Gleidson

      Dizem que a internet sabe tudo sobre nós. Aqui eu contribuo para que ela saiba sobre mim. Ou não.

    • Saiba mais
    • Email
    • Twitter
    • Facebook
    • LinkedIn
    • Instagram
    • Github
  • Posts
    • Todos
    • Tags
  • Projects

Usando CKEditor com Rails

03 Mar 2018

Reading time ~1 minute

Gems everywhere!

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'
end

Em 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:text

Nã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:

Formulário padrão Rails

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:

Formulário padrão CKEditor

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

Texto bugado :O

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:

Texto funcionando!

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.



rubyprogramacaotecnologiackeditor Like Tweet +1