Несколько Скрепка default_urls - PullRequest
       8

Несколько Скрепка default_urls

1 голос
/ 15 декабря 2009

Я использую Paperclip для загрузки изображения в модель моего проекта и хочу иметь массив изображений по умолчанию (не в зависимости от стиля, но разных изображений) это возможно? Чтобы передать массив вместо одного URL-адреса параметру: default_url?

Спасибо,

Николас Хок Исаза

Ответы [ 4 ]

4 голосов
/ 16 сентября 2010

Так близко: если вы хотите, чтобы изображения менялись случайно, а не только при первой загрузке модели:

:default_url => lambda { "path/to/images/#{rand(5)}.jpg" }
3 голосов
/ 19 октября 2011

Помещение rand (5) в процедуру default_url будет назначать случайное изображение каждый раз, когда создается новый объект модели.

Если вы хотите, чтобы изображения назначались случайным образом и чтобы каждый проект сохранял свое назначенное изображение, вы можете сделать это:

has_attached_file :something,
  :default_url => lambda { |av| "/images/img_#{av.instance.default_image_number}.png" }

def default_image_number
  id.to_s.last
end

Этот пример позволяет вам иметь 10 случайных изображений по умолчанию, которые остаются одинаковыми для каждой записи:

# img_0.png, img_1.png, etc.
1 голос
/ 15 декабря 2009

Ну, я не использовал лямбда-функцию, но я понял идею из ответа Бена.У меня просто есть файлы (0.jgp, 1.jpg ...), и тогда у меня может быть просто

: default_url => "path / to / images / # {rand (5)}. Jpg"

Без лямбды; -)

Большое спасибо!

0 голосов
/ 15 декабря 2009

Не знаю, сработает ли это, но стоит попробовать. Поместите изображения 0.png, 1.png, 2.png, 3.png, 4.png на диск, а затем в вашу модель:

has_attached_file :image,
  lambda {{
    :default_url => "path/to/images/#{rand(5)}.png"
  }}

Поместите и другие параметры в лямбду.

...