0

を失敗した後、私は二つのモデル検証が

class ComfortFactorSubCategory < ApplicationRecord 
    has_one :image, as: :imageable, dependent: :destroy 
    validates :heading, presence: true 
    accepts_nested_attributes_for :image, :reject_if => lambda { |a| a[:name].blank? }, allow_destroy: true 
end 

class Image < ApplicationRecord 
    belongs_to :imageable, polymorphic: true 
    mount_uploader :name, IconUploader 
end 

と私の管理/ comfort_factor_sub_category.rbを持って再び画像を選択する必要があり、なぜ私は間違った情報でフォームを送信すると、私はこれらの行

ActiveAdmin.register ComfortFactorSubCategory do 
    permit_params do 
    permitted = [:heading, image_attributes: [:name, :_destroy, :id], additional_instruction_ids: []] 
    permitted 
    end 
    form do |f| 
    f.inputs do 
     f.input :heading 
     f.input :additional_instructions, as: :select, collection: AdditionalInstruction.pluck(:description, :id) 
     f.fields_for :image do |b| 
     b.input :name, label: "Image", :as => :file 
     end 
    end 
    f.actions 
    end 
end 

を持っています見出しと妥当性検査が失敗したと言うことができますなぜ最初の投稿で選択したときにイメージを再度選択する必要がありますか

答えて

0

これはセキュリティ上の理由からブラウザによって制約されます。これは、エラーページがレンダリングされたときに、デフォルトのファイルオブジェクトの値でフォームを事前に埋め込むことを回避します。

これは約detailed excerptです。

これは、通常、ブラウザではサポートされていません。通常の の説明は「セキュリティ上の理由」です。ユーザーのディスクからのファイルがユーザーの コンテンツなしで送信された場合、セキュリティは実際にはセキュリティリスク になります。一部のユーザーに いくつかのパスワードファイルを提出させるのは簡単すぎるかもしれません。

また、このanother answerは、ASP.netフレームワークと同じ問題について話しています。