3

ポリモーフィック バージョンの Paperclip を使用する Rails では、デフォルトの保存方法では、同じ名前のファイルが互いに上書きされます。以前のファイルを古い :id で上書きするだけなので、パスと URL に :id を含めても機能しません。

タイムスタンプを使用して補間を試みましたが、画像が表示されているときに現在の時刻を検索するだけです (さらに、複数のサムネイルがあるため、1 秒以上かかるため、画像のスタンプが異なります)。

Paperclip.interpolates :uniqueid do |attachment, style|
  Time.now.to_i.to_s
end

また、16 進数を使用しようとしましたが、親指ごとに反復処理されるため、毎回新しい 16 進数値が存在するため中断します。

Paperclip.interpolates :uniqueid do |attachment, style|
  ActiveSupport::SecureRandom.hex(3)
end

これはポリモーフィック バージョンであり、独自のモデルを持っているため、親モデル (この場合は "Post") から値にアクセスする方法がわかりません。以下のコードのバリエーションはすべて、「未定義のメソッド」エラーをスローします。

Paperclip.interpolates :user_id do |attachment, style|
  current_user.id
end

初心者の質問のように思われる場合は申し訳ありませんが、従来のペーパークリップについては十分に文書化されていますが、ポリモーフィックフォークについては何もありません。

4

1 に答える 1

0

for に含める:classのはどうですか?:pathhas_attached_file

has_attached_file :attachment,
  :path => ":rails_root/attachments/:class/:id/:attachment/:basename.:extension",
  :url => "downloads/:id/:title.:extension"
于 2012-03-25T22:10:43.437 に答える