На всякий случай, если кто-то еще задается вопросом здесь из поиска Google или что-то.
Я закончил тем, что создал отношение принадлежащего к моей модели (pictures
) с моделью пользователя. Затем из загрузчика carrierwave я могу сделать model.user.first_name
, что эквивалентно picture.user.first_name
. Таким образом, я могу поместить этот model.user в свой путь и таким образом получить доступ к любому пользовательскому атрибуту. Надеюсь, это поможет кому-то еще.
Что-то вроде:
def store_dir
"#{model.user.first_name}/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.title}"
end
пс
Обратите внимание, что я также использовал model.title
, потому что я хочу, чтобы picture.title также был в пути. Не лучшая практика, хотя. Если вы сделаете это, убедитесь, что вы анализируете model.title в рабочей среде, чтобы он дал вам правильное имя папки / url.