rails 3 polymorphic association with paperclip and multiple models

后端 未结 2 1513
日久生厌
日久生厌 2020-12-30 12:27

I want to make polymorphic associations with paperclip, and allow my user to have one avatar and multiple images.

Attachment model:

         


        
2条回答
  •  误落风尘
    2020-12-30 12:56

    I'm not sure you really need to be polymorphic. How about this approach, which uses has_many :through? In plain English, the user has one avatar which has multiple images, and through this association you can call User.images to get the collection of images associated with the avatar.

    http://guides.rubyonrails.org/association_basics.html

    class User < ActiveRecord::Base
      has_one :avatar
      has_many :images, :through => :avatar
    end
    
    class Avatar < ActiveRecord::Base
      belongs_to :user
      has_many :images
    end
    
    class Image < ActiveRecord::Base
      belongs_to :avatar
      has_attached_file :image, :styles => { :thumb => "150x150>", :view => "260x180>" },
    end
    

    Having said all of this, I am left to wonder why you need to go through all this anyway. Why not just do

    class User < ActiveRecord::Base
      has_many :avatars
    end
    

    which would give you as many images (avatars) as you want.

提交回复
热议问题