<%= form_for @model_name, :url => {:controller => 'controller_name', :action => 'index'},:html => {:multipart => true},:validate => true do |f| %>
<%= file_field 'upload', 'datafile'%>
<% end %>
私はこのフォームを持っています。このアップロードで画像のみをアップロードしたい。これを行う方法?
<%= form_for @model_name, :url => {:controller => 'controller_name', :action => 'index'},:html => {:multipart => true},:validate => true do |f| %>
<%= file_field 'upload', 'datafile'%>
<% end %>
私はこのフォームを持っています。このアップロードで画像のみをアップロードしたい。これを行う方法?
HTML5
<%= f.file_field :file, multiple: true, accept:'image/*' %>
コンテンツタイプに基づいて、引き続き簡単な検証を行うことができます。
class MyModels < ActiveRecord::Base
validate :upload_is_image
...
private
def upload_is_image
unless upload and upload.content_type =~ /^image\/(jpeg|pjpeg|gif|png|bmp)$/
errors.add(:upload, "Not a valid image")
end
end
end
明らかに、受け入れたい画像の種類に応じて正規表現を微調整できます。
ペーパークリップジェムを使用して、添付ファイルを管理できます。役立つバリデーターがvalidates_attachment
あります。
validates_attachment :avatar, :presence => true,
:content_type => { :content_type => "image/jpg" },
:size => { :in => 0..10.kilobytes }