Rails Admin Melhorado
Posted on December 22, 2010
Atualização 22/12/2010: O @sferik aceitou meus commits e agora o Rails Admin tem oficialmente suporte ao CKEditor e Paperclip. Legal!
Recentemente foi lançado a Rails Engine Rails Admin, que permite integrar um módulo de administração dinâmico de maneira muito simples e rápida para aplicativos feitos com Rails 3. É a maneira mais fácil de criar administração para seus models, especialmente em casos onde você está trabalhando em um site institucional simples, um site de advertising/marketing, um hotsite, e não quer se preocupar em gastar tempo criando uma administração muito sofisticada.
E para facilitar, eu fiz algumas pequenas modificaçòes que fazem sua administração ficar assim:

Isso mesmo, com suporte a CKEditor 3.5 e Paperclip. Vejamos como.
Para começar, crie uma aplicação Rails 3 com o bom e velho rails new my_app. Então crie um model como “Page” com rails g model Page title:string body:text.
Agora vamos editar o arquivo “Gemfile” para acrescentar:
1 2 3 4 |
gem 'sqlite3-ruby', :require => 'sqlite3' gem 'devise' gem 'rails_admin', :git => 'git://github.com/sferik/rails_admin.git' gem 'paperclip' |
Note a URL do meu repositório do Github. Por enquanto as mudanças que fiz não foram aceitas no repositório principal, então você pode só apontar direto pro meu branch master. Não esqueça de rodar bundle install para instalar as gems, e para iniciar a configuração do Rails Admin, faça rails g rails_admin:install_admin.
Para ter suporte a Paperclip, você precisa adicionar colunas especiais na tabela, por exemplo, digamos que a página tenha um imagem avatar, uma coluna “avatar”, então precisamos criar uma migração com rails g migration AddAvatarToPage e editá-lo para ficar assim:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
class AddAvatarColumnsToPage < ActiveRecord::Migration def self.up add_column :pages, :avatar_file_name, :string add_column :pages, :avatar_content_type, :string add_column :pages, :avatar_file_size, :integer add_column :pages, :avatar_updated_at, :datetime end def self.down remove_column :pages, :avatar_file_name remove_column :pages, :avatar_content_type remove_column :pages, :avatar_file_size remove_column :pages, :avatar_updated_at end end |
Agora vamos configurar o model “Page” para acertar o Paperclip:
1 2 3 |
class Page < ActiveRecord::Base has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" } end |
Finalmente, vamos criar e editar o arquivo config/initializers/rails_admin.rb para ficar mais ou menos assim:
1 2 3 4 5 6 7 8 9 10 11 |
RailsAdmin.config do |config| config.model Page do edit do field :title field :avatar field :body do ckeditor true end end end end |
Os pontos importantes são: 1) adicionar a coluna “field”, que automaticamente será reconhecida como do Paperclip; e 2) adicionar a configuração do CKEditor para “true” para habilitar o editor. É só isso. E com isso ela ficará como a imagem que coloquei no começo do artigo:

O Rails Admin ainda está sobre muito desenvolvimento e deve continuar evoluindo. Se tiver novas idéias, não deixe de colaborar. Não é difícil seguir os exemplos, specs, e implementar suas próprias funcionalidades. Para ter um exemplo, veja meu commit para adicionar o CKEditor e o outro separado para adicionar o Paperclip.
blog comments powered by Disqus
Archives
- February 12(2)
- December 11(1)
- November 11(4)
- October 11(6)
- September 11(5)
- August 11(1)
- July 11(5)
- May 11(4)
- April 11(11)
- March 11(4)
- February 11(3)
- January 11(4)
- December 10(9)
- November 10(2)
- October 10(10)
- September 10(4)
- August 10(6)
- July 10(14)
- June 10(16)
- May 10(8)
- April 10(14)
- March 10(9)
- February 10(6)
- January 10(14)
- December 09(10)
- November 09(10)
- October 09(7)
- September 09(19)
- August 09(4)
- July 09(12)
- June 09(7)
- May 09(12)
- April 09(11)
- March 09(9)
- February 09(9)
- January 09(12)
- December 08(14)
- November 08(20)
- October 08(15)
- September 08(18)
- August 08(25)
- July 08(13)
- June 08(21)
- May 08(29)
- April 08(27)
- March 08(12)
- February 08(32)
- January 08(31)
- December 07(27)
- November 07(30)
- October 07(25)
- September 07(28)
- August 07(16)
- July 07(15)
- June 07(16)
- May 07(7)
- April 07(13)
- March 07(8)
- February 07(9)
- January 07(24)
- December 06(17)
- November 06(17)
- October 06(15)
- September 06(38)




