3

異なるユーザーが同じ名前のファイルをアップロードして、PolymorphicPaperclipプラグインで上書きされるという問題が発生しています。私がやりたいのは、現在のユーザーのIDをURL/パスに挿入することです。これは可能ですか?ランダムな名前を生成したほうがいいでしょうか?

これが、asset.rbの現在の:urlおよび:pathパラメーター値です。

:url => "/assets/:id/:style/:basename.:extension",
:path => ":rails_root/public/assets/:id/:style/:basename.:extension"

私ができるようにしたいのはこれです:

:url => "/assets/#{current_users_id}/:id/:style/:basename.:extension",
:path => ":rails_root/public/assets/#{current_users_id}/:id/:style/:basename.:extension"
4

3 に答える 3

6

ペーパークリップ補間を使う:

ファイル config/initializers/paperclip.rb:

module Paperclip
  module Interpolations
    def user_id(attachment, style)
      current_user.id
    end
  end
end

has_attached_file オプション:

:url => "/assets/:user_id/:id/:style/:filename"

(構文は Paperclip 2.x から 2.3 に変更されました。:path は必要ありません。最新バージョンを使用し、ソースを見てください。十分に文書化されています。)

于 2009-08-12T12:36:43.527 に答える
0

ランダムという単語を見て、それが文字列に関連しているのを見るたびに、GUIDだと思います。おそらく彼らはあなたのために働くことができます。

于 2009-07-18T06:14:32.603 に答える