2013-09-07 3 views
1

첨부 된 파일을 s3에 저장하려고하는데 - : id가 경로에 저장되는 대신 friendly_id gem의 db에 쓰여지고있는 : slug를 사용하고 싶습니다. 그러나 경로에 슬러그를 넣으면 실제 슬러그 변수 대신 슬러그라는 폴더가 생깁니다.레일 클립 클립 has_attached_file 경로 : slug?

이미지를 저장하는 위치에 슬러그를 가장 잘 삽입하는 방법이 궁금합니다. has_attached_file이 호출 될 때 어떤 매개 변수가 클립에 노출되는지 궁금합니다.

답변

2

클립 클립 보간을 사용해야합니다. 이 클립 3.5.2

class User < ActiveRecord::Base 
    extend FriendlyId 
    friendly_id :name, use: [ :slugged, :finders ] 

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

    has_attached_file :picture, 
    styles: { large: "512x512!", medium: "256x256!", thumb: "128x128!" }, 
    default_url: "/images/:class/:style/missing.png", 
    hash_secret: "xxxxxxxxxxxxxxxxxxxxxx", 
    url: "/system/:class/:attachment/:slug/:style/:hash.:extension", 
    path: ":rails_root/public/system/:class/:attachment/:slug/:style/:hash.:extension" 
end 

또한 파일 이름에 개인 정보를 숨길 수있는 해시 파일 이름을 사용하는 방법을 보여줍니다 나를 위해 작동합니다. URL에서 파일 이름을 가져 오기 위해 웹 서버에서 일부 라우팅을 설정하지 않으면 URL과 경로가 일치해야합니다.

관련 문제