0

我正在使用回形针在我的 rails 应用程序中上传图像。

我有 2 个模型“图像”和“书”,其中一本书可以有许多图像,图像属于书。在我的“图像”表中,我有 4 列:

  • ID
  • book_id
  • 数据文件路径
  • 数据文件名

“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 值。

非常感谢您的宝贵帮助。一段时间以来,我一直在为此苦苦挣扎。

4

1 回答 1

1

啊,我终于想通了。我需要使用 Paperclip.interpolates。

我在 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"

希望这可能对其他人有帮助:)干杯

于 2012-07-18T15:51:29.627 回答