2010-12-11 40 views
5

Tôi đã chơi xung quanh bằng cách sử dụng Paperclip để xây dựng thư viện ảnh/cửa hàng. Thư viện có nhiều Ảnh và một Ảnh thuộc về Thư viện và Người dùng có thể có nhiều Thư viện. Giá trị mặc định của kẹp giấy thực hiện như /:class/:style/:basename.:extension. Tuy nhiên, với một thiết lập bộ sưu tập, tôi muốn có một cái gì đó giống như /:class/:user_name/:gallery_name/:styles/:basename.:extension. Tôi chưa tìm được cách để truy cập các biến trong một đối tượng để tự động tạo các vị trí lưu trữ này.Đường dẫn/đường dẫn kẹp giấy sử dụng các giá trị của một đối tượng

Có cách nào để thực hiện việc này không?

Tôi đã thử sử dụng # {variable} trong đường dẫn nhưng điều đó không hiệu quả. Các đối tượng ảnh này đang được tạo bằng cách sử dụng @ gallery.photos.build, vì vậy gallery_id đã có giá trị có thể truy cập được.

Trả lời

8

Hãy xem phần tips and updates trên Thoughtbot.com. Nó thảo luận cách thêm các biến nội suy của riêng bạn vào đường dẫn/url.

4

Câu trả lời @ zetetic là một chút ngày (bài đăng trên blog là từ năm 2008) Cách hiện tại (2015) để tạo nội suy tùy chỉnh được mô tả trong paperclip wiki. Vì vậy, đối với câu hỏi user_name trong câu hỏi, có thể giống như sau:

# interpolate in paperclip 
Paperclip.interpolates :user_name do |attachment, style| 
    attachment.instance.gallery.user.name 
end 
+0

Cảm ơn bạn đã đăng liên kết tài liệu mới! – jaredsmith

Các vấn đề liên quan