問題タブ [rails-activestorage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
4498 参照

ruby-on-rails - カスタム コントローラー アクションを介して ActiveStorage ファイルをユーザーに送信する

私は ActiveStorageurl_for(user.avatar)メソッドを認識しています。例:

これは素晴らしいことですが、その周りに承認が組み込まれていないようです。このリンクを知っている人は誰でもこのドキュメントをダウンロードできます。

過去にpaperclipを使用したとき、カスタム コントローラー アクションへのリンクがありました。そのカスタム コントローラー アクションは認証を行い、すべてが良好であればsend_file、ファイルをユーザーに送信していました。それは次のようなものでした:

active_storage でこれを行うにはどうすればよいですか? 私が仕事をしたのurl_forは、ユーザーをまったく承認しない実装だけです。

具体的には、Rails Guides on ActiveStorage のDownload Files部分を調べています。

関連するコード例:

これはエラーになり、次のように表示されます。

ファイルを読み取れません

私もこれを試みました:

これはエラーを返しました:

文字列に null バイトが含まれています

そして、私もこれを試みました:

これはエラーを返しました:

BooksController#deliver_it には、このリクエストのテンプレートがありません

私もこれを試しました:

これはエラーになり、次のように表示されます。

ActiveStorage::Blob から文字列への暗黙的な変換はありません

0 投票する
4 に答える
27793 参照

ruby-on-rails - ディスク上の ActiveStorage ファイルへのパスを取得する

を使用しているディスク上のファイルへのパスを取得する必要がありますActiveStorage。ファイルはローカルに保存されます。

ペーパークリップを使用していたときはpath、フルパスを返す添付ファイルのメソッドを使用しました。

例:

Active Storage Docsを見ていると、うまくいくように見えましrails_blob_pathた。ただし、返されたものを見た後、ドキュメントへのパスは提供されません。したがって、次のエラーが返されます。

そのようなファイルまたはディレクトリはありません @ rb_sysopen -

バックグラウンド

複数のpdfを単一のpdfに結合するために combine_pdf gemを使用しているため、ドキュメントへのパスが必要です。

ペーパークリップの実装では、選択した pdf 添付ファイルの full_paths を反復処理し、loadそれらを組み合わせた pdf にしました。