如何在 Rails 上的 Ruby 中使用回形针使模型具有无限图像?

How to make a model has unlimited images with paperclip in Ruby on Rails?

我有一个有头像的用户模型。回形针用于上传图片。但是,我希望用户能够上传尽可能多的图像(无限制)。如何修改我的模型以允许此类行为? 用户模型如下所示:

class Model < ApplicationRecord
  has_attached_file :pic, styles: { medium: "420×633!", thumb: "100x100#" }, default_url: "/images/:style/missing.png"
  validates_attachment_content_type :pic, content_type: /\Aimage\/.*\z/
  has_many :reviews, dependent: :destroy 

提前致谢!

您可以在单独的模型中为用户存储 photos(如果您这样称呼)并在 User 模型中添加关联:

命令行

rails g paperclip photo pic

app/models/user.rb

has_many :photos, dependent: :destroy

app/models/photo.rb

belongs_to :user
has_attached_file :pic, styles: { medium: "420×633!", thumb: "100x100#" }, default_url: "/images/:style/missing.png"
validates_attachment_content_type :pic, content_type: /\Aimage\/.*\z/

根据给定的规范,您可以生成另一个模型来保存 user_images,这样用户就可以拥有无​​限的图像。

user.rb
class User < ApplicationRecord
  has_many :user_images, dependent: :destroy

  accepts_nested_attributes :user_images

  validates_attachment_content_type :pic, content_type: /\Aimage\/.*\z/
  has_many :reviews, dependent: :destroy 
end

user_image.rb
Class UserImage < ApplicationRecord
   belongs_to :user
   has_attached_file :user_image, styles: { medium: "420×633!", thumb: "100x100#" }, default_url: "/images/:style/missing.png"
end

在 user_model 中添加了 accepts_nested_attributes 并在 user_image 中添加了用于上传图像的回形针设置。