Рельсы 3 и скрепка — путь для хранения изображений

#ruby-on-rails-3 #image #paperclip

#ruby-on-rails-3 #изображение #скрепка

Вопрос:

Я пытаюсь настроить путь для хранения изображений с помощью плагина скрепки.

В моей модели я задал путь как:

 :path => ":rails_root/public/gallery/:user_id/:style/:basename.:extension",
:url => "/gallery/:user_id/:style/:basename.:extension"
  

Но изображения сохраняются в каталоге с именем «/ user_id», а не в каталоге «1» (в качестве идентификатора пользователя) — что я делаю не так? Забыл я о чем-нибудь важном?

РЕДАКТИРОВАТЬ — РЕШЕНИЕ:

Если у вас есть модель (например photo ), и вы хотите сохранить изображения в папку, которая вызывается как идентификатор другой модели (например user ), вам необходимо добавить в config/initializers файл paperclip.rb следующее содержимое:

 Paperclip::Attachment.interpolations[:user_id] = proc do |attachment, style|
  attachment.instance.user_id # or whatever you've named your User's login/username/etc. attribute
end
  

После этого обновления необходимо перезапустить WEBrick еще.

PS — предположение — это связь между этими двумя моделями.

Спасибо

Комментарии:

1. не могли бы вы дать нам некоторые подробности о настройке?

Ответ №1:

Для этого есть новый синтаксис, на случай, если он кому-то понадобится:

 Paperclip.interpolates :user_id do |attachment, style|
    attachment.instance.user_id
end