私は初期化子でPaperclip.interpolesを使用してクリップの宝石を経由してアップロードされたファイルのカスタムファイル名を作成しようとしています。私が抱えている問題は、ファイルがアップロードされたときにファイルシステム上のカスタムファイル名を更新することですが、データベースファイル名はソースファイルの名前のままです。これを処理するためにデータベース属性を再割り当てする必要はありませんか?ペーパークリップの宝石とカスタムファイル名2.3
0
A
答えて
3
はActiveRecordの中before_create
コールバックを使用してみてください。 paperclipは、ActiveRecord::Base#save
が呼び出されるまで、添付されたリソースをディスクに書き込まないため、これはあなたのカスタムファイル名を作成するのに適しているようです。
これを行うには、カスタムファイル名を作成する通常の方法を登録します。これにより、添付されたイメージの名前が変更され、ファイルシステムとデータベースで検索されます。
のはあなたがカスタムランダムなファイル名で画像を添付したいモデルを、持っているとしましょう。お使いのモデルで
:あなたのモデルでも
has_attached_file :image
before_create :randomize_image_file_name
:
def randomize_image_file_name
extension = File.extname(image_file_name).downcase
self.image.instance_write(:file_name, "#{ActiveSupport::SecureRandom.hex(8)}#{extension}")
end
保護またはプライベートとしてコールバックメソッドを宣言することはいい習慣だけれどもあなたは、どこでもあなたが望むあなたのメソッドを宣言することができます。
これは、カスタムランダムファイル名で添付ファイルを保存します。
これが役に立ちます。
関連する問題
- 1. ペーパークリップ "宝石" のレール3.1.1を使用して3.1未定義のメソッドモデルファイル名
- 2. ドアキーバーの宝石とノックの宝石
- 3. ペーパークリップの宝石のサポート.docのアップロードかどうか?
- 4. 私のrails.jsでペーパークリップ宝石がうまく機能しない
- 5. ペーパークリップにはRMagickの宝石が必要ですか?
- 6. ペーパークリップ宝石を使用してサムネイルを再生する
- 7. 宝石私はちょうどsearchlogic宝石をインストールし、私は熊手の宝石を実行したときにスペルミスの宝石名
- 8. BundlerとHeroku:条件付きの宝石/ 2種類の宝石
- 9. 司会者の宝石のユーザー名
- 10. 宝石の名前を持つモデル
- 11. 宝石
- 12. パンダの宝石とHerokuの
- 13. Twitterの宝石
- 14. 宝石のパッチ
- 15. ジャガーノートの宝石
- 16. カピストラーノデプロイエラープライベートパブの宝石
- 17. スプレッドシートの宝石
- 18. RJSとDeviseの宝石
- 19. simple_navigationの宝石とレール3.0.9
- 20. サーチャー宝石とActiveRecordの
- 21. Rails 3のプロジェクトフォルダと宝石
- 22. Twitterの宝石と、ArgumentError
- 23. 宝石は宝石を実行しているとき、私は、次の取得インストール宝石
- 24. 画像をアップロードするシップファイルからペーパークリップ宝石を使用して
- 25. 関係バンドラと宝石
- 26. 宝石は2秒ごと
- 27. 宝石レール3.2.2
- 28. アクセス `spreadsheet`宝石
- 29. レール、宝石
- 30. 靴や宝石