回形针 - image.rb中的路径

时间:2012-07-18 15:33:49

标签: ruby-on-rails paperclip

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

我有2个模型'Image'和'Book',其中一本书可以有很多图像和图像belongs_to Book。 在我的“图片”表格中,我有4列:

  • ID
  • book_id
  • data_file_path
  • data_file_name

列'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值。

非常感谢您的宝贵帮助。我已经挣扎了一段时间了。

1 个答案:

答案 0 :(得分: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"

希望这对其他人有帮助:) 欢呼声