0

Railsアプリケーションで画像をアップロードするためにペーパークリップを使用しています。

私は2つのモデル「Image」と「Book」を持っています。1つの本に多くの画像を含めることができ、画像は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値を取得する方法。

貴重なご協力をありがとうございました。久しぶりに苦労しています。

4

1 に答える 1

1

ああ、私はついにそれを理解しました。Paperclip.interpolatesを使用する必要がありました。

config / initializers/paperclip.rbファイルに以下を追加しました

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

次に、image.rbのパスに「data_file_path」を追加するだけです。

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 に答える