uploadableと呼ばれる、マルチフォームアソシエーションを持つUploadというモデルを保存しようとしています。レール内のポリモーフィックアソシエーションの検証をスキップ
ここでは、ユーザーがファイルをドラッグアンドドロップすることができるdropzone js領域を実行しています。サーバー側でアップロードを作成し、htmlで追加されるいくつかのキーを返す必要があります。フォームを保存する(ユーザーがフォームを保存した場合、作成したコメントでuploadable_idとuploadable_typeを設定するか、それ以外の場合はアップロードが自動的に24時間以内に削除されます)
唯一の問題は、 @ upload.saveを実行するとuploadable_id e uploadable_typeが表示されます
アップロード可能な属性についてのみ(存在の)妥当性検査をスキップできますか?私は@ upload.save(validate:false)を使用しないでください。なぜなら、1つではなく、すべてのバリデーションをスキップするからです。
私は偽の属性使ってみた:
class Upload < ApplicationRecord
belongs_to :uploadable, polymorphic: true
has_attached_file :file
attr_accessor :skip_uploadable_validation
validate :uploadable, unless: :skip_uploadable_validation
end
をそして私が行います
@upload = Upload.new
@upload.file = params[:file]
@upload.skip_uploadable_validation = true
@upload.save # it fails anyway
しかし、それは動作しますしません。