Как сделать так, чтобы в модели было неограниченное количество изображений с помощью скрепки в Ruby on Rails? - PullRequest
0 голосов
/ 22 мая 2018

У меня есть модель пользователя с аватаром.Скрепка была использована для разрешения загрузки изображений.Тем не менее, я хочу, чтобы пользователь мог загружать как можно больше изображений (неограниченно).Как мне изменить мою модель, чтобы позволить такое поведение?Пользовательская модель выглядит так:

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 

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

В соответствии с данными спецификациями вы можете сгенерировать другую модель для сохранения 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

Добавлены acceptpts_nested_attributes в user_model и параметр paperclip в user_image для загрузки изображений.

0 голосов
/ 22 мая 2018

Вы можете сохранить 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/
...