Primeiro post sobre Ruby on Rails: tenho estudado bastante tanto o framework como a linguagem (Ruby), gostado bastante deles. A linguagem é totalmente orientada a objetos e com uma leitura muito simples, e o framework com seu conceito Convention over Configuration faz aumentar muito a produtuvidade.
Vamos lá, para um exemplo simples de como possibilitar que uma entidade da sua aplicação tenha uma imagem atrelada. Para isso, vamos usar a gem Paperclip (em https://github.com/thoughtbot/paperclip tem a documentação completa, inclusive como instalar).
O exemplo abaixo foi testado no Ubuntu 11.04, RoR 3.0.9 e Ruby 1.8.7
Criar a aplicação
rails new MinhaApp
Editar Gemfile
gem 'paperclip'
*Se necessário, rode bundle install
Como é para exemplificar, vamos usar scaffold para gerar uma entidade Image
rails generate scaffold Image name:string description:text
Gerar migration que adiciona em Image um file (obs: asset pode ter qualquer outro nome)
rails generate paperclip Image asset
Alterar model de Image (image.rm)
class Image < ActiveRecord::Base
has_attached_file :asset,
:styles => { :medium => "400×400>",
:thumb => "100×100>" }
end
Alterar o form de criação de uma Image, deixando o form com multipart
<%= form_for(@image, {:multipart => true}) do |f| %>
Inserir no form campo de imagem
<%= f.file_field :asset %>
Alterar o show.html.erb inserindo as tags que exibe a imagem e suas variações
<%= image_tag @image.asset.url %>
<%= image_tag @image.asset.url(:medium) %>
<%= image_tag @image.asset.url(:thumb) %>
Crie o banco e rode as migrations
rake db:create
rake db:migrate
Pronto, só subir a aplicação Rails
rails server
E acessar http://localhost:3000