Railsから始めます。HerokuでホストされているRailsアプリにPaperclipとS3を使用する簡単な質問があります。
添付ファイルを(本番環境と環境の両方で)アップロードできるようにすべてを同期しましたが、唯一の問題はアプリ/S3からファイルを削除することです。私は多くの検索を行いましたが、多くの実装にはチェックボックスが含まれています。また、管理者へのアクセスを制限するために、ファイルコントローラーを介してすべてを実行しています。
has_many添付ファイルを持つ単純なプロジェクトモデルを使用しています。
削除リンクをクリックすると、S3から「エラー:MethodNotAllowed。指定されたメソッドはこのリソースに対して許可されていません」というエラーが表示されます。
これが私の見解です:
<% @project.assets.each do |asset| %>
<%= link_to File.basename(asset.asset_file_name), asset.asset.url %>
<small>(<%= number_to_human_size(asset.asset.size) %>)</small>
<%= link_to '[X]', asset.asset.url , confirm: 'Are you sure you want to delete this attachment?', method: :destroy %>
これが私の破壊アクションです:
def destroy
@asset = Asset.find(params[:id])
@asset.destroy
flash[:notice] = "Attachment has been deleted."
redirect_to(:back)
end
プロジェクトモデルはかなり標準的です:
class Asset < ActiveRecord::Base
# attr_accessible :title, :body
attr_accessible :asset
belongs_to :project
has_attached_file :asset, :storage => :s3, :path => (Rails.root + "files/:id").to_s, :url => "/files/:id"
end
ファイルを削除するためにここで他に何が欠けていますか?モデルに何かありますか?S3を使用しておらず、SQLiteまたはPGデータベースから削除した場合は、すべてうまく機能しました。
どんな助けでも大歓迎です、そしてありがとう!