7

私はPaperclip-FFMEGを使用して、ビデオファイルを開発環境にアップロードしています(そして、最終的には、プロジェクトが本番環境に入るときにローカルサーバーにアップロードします)。

ビデオがアップロードされるとき、ファイル名はデフォルトで次のようになります。

/system/modelnames/paperclipnames/.../mynewfile.mp4?xxxxxxxxxx

疑問符の後の10桁の数字はタイムスタンプだと思います。

ただし、ビデオの再生に使用するプレーヤーは、ファイルの添付ファイルの後に何も表示されないようにします。そのため、URLをプレーヤーに渡す前に、疑問符とその後のタイムスタンプを削除します。

私は次のRuby(私は思う)ストリップ関数を使おうとしました:

temp_variable = model.paperclipattribute.url(:blah).strip('?')[0]

ただし、Railsはエラーをスローします。

wrong number of arguments(1 for 0)

私はこれを間違っていると思いますか?他の解決策はありますか?タイムスタンプを完全にオフにしたくないのは、この状況でのみオフにする必要があるためです。

ありがとう!

4

4 に答える 4

18

特定の添付ファイルに対してこれをどこでも実行し、追加のパラメーターを渡す必要がない場合は、モデルでメソッドをuse_timestamp呼び出すときにオプションを設定できます。has_attached_fileしたがって、Paperclip READMEに記載されている例に基づいて構築するには、次のようにします。

has_attached_file :avatar,
  :styles => { :medium => "300x300>", :thumb => "100x100>" },
  :default_url => "/images/:style/missing.png",
  :use_timestamp => false
于 2013-05-02T14:55:56.283 に答える
7

これが私自身の質問への回答として入れても大丈夫だといいのですが(この投稿に出くわした他の人にとっては役立つかもしれません)、それ以来、この問題に対処する別の(そしてより適切な)方法はfalseビューにコンテンツを表示するときに、次のようにURL()にパラメーターを追加します。

model.paperclipattribute.url(:whateverstyle, false)

タイムスタンプは自動的に削除されます。私が提案した方法では、削除するつもりのないコンテンツが削除される可能性があるため、これはより良いと思いますsplit。たとえば、ファイルの名前が「Is_this_a_question _?_ Yes_it_is.mp4?xxxxxx」の場合、最初の疑問符の後のすべてが削除されます(つまり、ファイルは「これは質問です_」と読み取られるため、ファイル名が破損します。

私はこれをテストしていないので、間違っている可能性があります。

于 2012-08-09T10:28:08.223 に答える
5

グローバルにデフォルトでオフに設定します。これをconfig/initializers/paperclip.rbファイルに配置するだけです。

Paperclip::Attachment.default_options[:use_timestamp] = false

于 2014-01-30T18:02:06.073 に答える
2

split代わりに使いたいと思います。stripは引数を取りません。先頭と末尾の空白を削除するだけです。

于 2012-08-03T19:42:41.403 に答える