#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