我正在使用paperclip在我的rails应用程序中上传图像。
我有2个模型'Image'和'Book',其中一本书可以有很多图像和图像belongs_to Book。 在我的“图片”表格中,我有4列:
列'data_file_path'存储图像的路径,列'data_file_name'存储图像名称和扩展名
在我的image.rb文件中,我有以下几行代码:
has_attached_file :data, :path => "http://www.test.org/book/book_images/:data_file_path/:book_id/:style/:basename.:extension",
:url => "http://www.test.org/book/book_images/:data_file_path/:book_id/:style/:basename.:extension"
注意上面代码中的':data_file_path'。
在我看来,当我做<%= image.data.url(:thumb)%>我得到以下路径:
http://www.test.org/book/book_images/data_file_path/9124/thumb/1897_EK91_201107.jpg
它不是从d-base中检索data_file_path值,而是显示变量名。
如何在url中获取data_file_path值。
非常感谢您的宝贵帮助。我已经挣扎了一段时间了。
答案 0 :(得分:1)
我在config / initializers / paperclip.rb文件中添加了以下内容
Paperclip.interpolates :data_file_path do |attachment, style|
attachment.instance.data_file_path
end
然后只需将'data_file_path'添加到image.rb中的路径:
has_attached_file :data, :path => "http://www.test.org/book/book_images/:data_file_path/:book_id/:style/:basename.:extension",
:url => "http://www.test.org/book/book_images/:data_file_path/:book_id/:style/:basename.:extension"
希望这对其他人有帮助:) 欢呼声