Model Fotos para muitos

13 views
Skip to first unread message

Jardel Bordignon

unread,
Feb 5, 2011, 4:27:53 PM2/5/11
to aprendendo-rails
Olá pessoal, estou com uma dificuldade de iniciante!
Tenho uma classe de Produtos que tem varias Fotos

class Produto < ActiveRecord::Base
has_many :fotos, :dependent => :destroy
...
end

class Foto < ActiveRecord::Base
belongs_to :produto
...
end

Porém eu gostaria de usar a classe Foto de forma genérica, tipo assim:

class CreateFotos < ActiveRecord::Migration
def self.up
create_table :fotos do |t|
t.integer :pai_id
t.string :pai_tipo
t.string :name, :content_type
end
end


Daí eu poderia usar a classe Foto tanto para Produto, Usuário,
Fornecedor, de forma mais organizada.

Mas não sei como mudar para a classe Foto reconhecer o "pai".

Espero não ter ficado muito confuso, mas creio que a solução seja bem
simples.
Obrigado, até...

Renato Ferraz

unread,
Feb 7, 2011, 11:29:21 AM2/7/11
to aprendendo-rails
Você pode fazer o seguinte crie um migrate como este

class CreatePhotos < ActiveRecord::Migration
def self.up
create_table :photos do |t|
t.string :name
t.references :imageable, :polymorphic => true
t.timestamps
end
end

def self.down
drop_table :photos
end
end

e depois você adicione o seguinte no model photo.rb

class Photo < ActiveRecord::Base
belongs_to :imageable, :polymorphic => true
end

Agora em qualquer model você pode adicionar o has_many

class Product < ActiveRecord::Base
has_many :photos, :as => :imageable
...
end


@product.photos << Photo.new({:name => "test"})

E isso ai...

Abs,
R.

Daniel Docki

unread,
Feb 7, 2011, 2:39:16 PM2/7/11
to aprenden...@googlegroups.com
Jardel,
Só para deixar mais claro o que o Renato postou, segue esses links sobre Associações Polimórficas:



Abs,
Daniel Docki

2011/2/7 Renato Ferraz <renatome...@gmail.com>
--
You received this message because you are subscribed to the Google Groups "aprendendo-rails" group.
To post to this group, send email to aprenden...@googlegroups.com.
To unsubscribe from this group, send email to aprendendo-rai...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/aprendendo-rails?hl=en.




--
Daniel Docki
Skype: daniel.docki
MSN/Gtalk: daniel...@gmail.com
Twitter: http://twitter.com/danieldocki

Jardel Bordignon

unread,
Feb 7, 2011, 5:44:38 PM2/7/11
to aprendendo-rails
Obrigado Renato e Daniel, não tive tempo para tentar antes, deu
certinho, obrigado mesmo!
Até...

On 7 fev, 17:39, Daniel Docki <daniel.do...@gmail.com> wrote:
> Jardel,
> Só para deixar mais claro o que o Renato postou, segue esses links sobre
> Associações Polimórficas:
>
> http://guias.rubyonrails.pro.br/association_basics.html#associaes-pol...
>
> http://brunograsselli.com.br/2009/12/associacoes-polimorficas-com-rub...
>
> Abs,
> Daniel Docki
>
> 2011/2/7 Renato Ferraz <renatomelofer...@gmail.com>
> MSN/Gtalk: daniel.do...@gmail.com
> Twitter:http://twitter.com/danieldocki
Reply all
Reply to author
Forward
0 new messages