carrierwave_direct gemを使用してファイルをS3に直接アップロードしていますが、すべてが順調に進んでいます。ただし、Amazonがで指定されたURLにリダイレクトする場合success_action_redirect
、アップロードされたファイルをオブジェクトに関連付けていません。
私のコントローラーは次のようになります
def edit
@excel_version = ExcelVersion.find(params[:id])
@uploader = @excel_version.excel_everest_macro
@uploader.success_action_redirect = edit_admin_excel_version_url
end
def update
@excel_version = ExcelVersion.find(params[:id])
@excel_version.assign_attributes(params[:excel_version])
@excel_version.save
end
そして、ビューに= form_for @excel_version do |form|のような非表示のフォームフィールドがあります。= form.hidden_field:key
したがって、更新アクションでは、使用するだけ@excel_version.assign_attributes(params[:excel_version])
で、Amazonから返されたキーがモデルにうまく組み込まれます。ただし、@ excel_versionオブジェクトにマウントされたアップローダーはURLを取得せず、ファイルをダウンロードするためのリンクを設定できません。
返されたS3パラメーターを使用して、carrierwaveが通常行うように、ファイルをモデルに関連付ける方法に関する提案はありますか?
ありがとう!
PSここでの別の回答は、githubのcarrier_wave直接ドキュメントを読むことを提案しました。これは、この点で役に立たないことがわかりました。