我有一個兩個模型如何驗證<%= file_field_tag 「圖像[]」,類型:文件,多個:真%>
Gallery
class Gallery < ActiveRecord::Base
has_many :pictures, :dependent => :destroy
accepts_nested_attributes_for :pictures, :allow_destroy => true
attr_accessible :name, :description, :pictures_attributes
validates_presence_of :pictures
end
Picture
class Picture < ActiveRecord::Base
belongs_to :gallery
has_attached_file :image,
:path => ":rails_root/public/images/:id/:filename",
:url => "/images/:id/:filename"
end
並形成
<%= form_for @gallery, :html => { :class => 'form-horizontal', multipart: true } do |f| %>
.........
<div class="controls">
<%= file_field_tag "images[]", type: :file, multiple: true %>
</div>
.........
<% end %>
控制器
def create
@gallery = Gallery.new(gallery_params)
respond_to do |format|
if @gallery.save
if params[:images]
params[:images].each { |image|
@gallery.pictures.create(image: image)
}
end
format.html { redirect_to @gallery, notice: 'Gallery was successfully created.' }
format.json { render json: @gallery, status: :created, location: @gallery }
else
format.html { render action: "new" }
format.json { render json: @gallery.errors, status: :unprocessable_entity }
end
end
end
private
def gallery_params
params.require(:gallery).permit(:description,
:name,
:pictures
)
end
如果我想驗證has_many圖片圖像是否空白,我每次都得到一個圖片爲空的錯誤,即使我選擇了圖片。
我如何驗證has_many與多個圖像字段的關聯?
PARAMS
Parameters: {"utf8"=>"✓", "authenticity_token"=>"MCkZFvsYvRndlfaqwXiw5MfhSHGoesawEAPFWzn0Ulw=", "gallery"=>{"name"=>"", "description"=>""}, "images"=>[#<ActionDispatch::Http::UploadedFile:0x007fb7ad9cb7d0 @tempfile=#<Tempfile:/var/folders/r4/jqx7vz8d48z2ky3ndpyzv9vc0000gn/T/RackMultipart20150926-38180-1xrchqg>, @original_filename="yamaha-blaster-BOARD-HEROa.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"images[]\"; filename=\"yamaha-blaster-BOARD-HEROa.jpg\"\r\nContent-Type: image/jpeg\r\n">], "commit"=>"Create Gallery"}
(0.1ms) begin transaction
(0.0ms) rollback transaction
您可以顯示您的圖庫控制器嗎? – IngoAlbers
您可以檢查服務器日誌是否允許未經許可的參數警告? – IngoAlbers