2015-12-11 3 views
0

Я пытаюсь создать форму. Часть из них - загрузка изображения с использованием жгута для обложки в рельсах 4. Когда я загружаю, я получаю сообщение об ошибке «Изображение не может быть ошибкой».Скрепка: Изображение не может быть пустой ошибкой

Может ли кто-нибудь помочь мне с этим?

Product.rb файл:

class Product < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :category 
    has_many :comments , dependent: :destroy 
    has_attached_file :image ,:styles => { 
    :thumb => ['100x100#', :jpg, :quality => 70], 
    :preview => ['480x480#', :jpg, :quality => 70], 
    :large => ['600>',  :jpg, :quality => 70], 
    :retina => ['1200>',  :jpg, :quality => 30] 
}, 
:convert_options => { 
    :thumb => '-set colorspace sRGB -strip', 
    :preview => '-set colorspace sRGB -strip', 
    :large => '-set colorspace sRGB -strip', 
    :retina => '-set colorspace sRGB -strip -sharpen 0x0.5' 
} 

    validates_attachment_presence :image 
    validates_attachment_size :image , :less_than => 10.megabytes 
    validates_attachment_content_type :image , :content_type => ['image/jpeg','image/jpg','image/png'] 
    validates :image, presence: true 
# accepts_nested_attributes_for :product , :reject_if => lambda { |t| t['image'].nil? } 
end 

_form.html.erb файл

<%= form_for(@product , :html => {:multipart => true }) do |f| %> 
    <% if @product.errors.any? %> 
    <div id="error_explanation"> 
     <h2><%= pluralize(@product.errors.count, "error") %> prohibited this product from being saved:</h2> 

     <ul> 
     <% @product.errors.full_messages.each do |message| %> 
     <li><%= message %></li> 
     <% end %> 
     </ul> 
    </div> 
    <% end %> 

    <div class="field"> 
    <%= f.label :name %><br> 
    <%= f.text_field :name %> 
    </div> 
    <div class="field"> 
    <%= f.label :price %><br> 
    <%= f.number_field :price %> 
    </div> 
    <div class="field"> 
    <%= f.label :description %><br> 
    <%= f.text_area :description %> 
    </div> 
    <div class="field"> 
    <%= f.label :reason %><br> 
    <%= f.text_area :reason %> 
    </div> 
    <div> 
    <%= f.label :status %> 
    <%= f.select :status, options_for_select([ "Not sold", "Sold","Booked" ], "Not sold") %> 
    </div> 
    <div class="field"> 
    <%= f.label :image %><br> 
    <%= f.file_field "images", type: :file %> 
    </div> 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

ответ

1

Вы не являются обязательными для атрибута изображения в форме, проверьте ниже.

<div class="field"> 
    <%= f.label :image %><br> 
    <%= f.file_field "images", type: :file %> 
</div> 

в

<div class="field"> 
    <%= f.label :image %><br> 
    <%= f.file_field :image%> 
</div> 
Смежные вопросы