Доброго дня. Никак не удается сделать проверку размера картинки, до отправки.
Имеется модель real_estate
has_many :pictures, dependent: :destroy
validate :picture_size
def picture_size
pictures.each do |img|
if img.image_file_size > 5.megabytes
errors.add(:pictures, "should be less than 5MB")
end
end
end
Имеется контроллер
def update
@user = current_user
@real = RealEstate.find(params[:id])
if @real.update(real_params)
if params[:images]
# The magic is here ;)
params[:images].each do |image|
@real.pictures.create(image: image)
end
end
redirect_to root_path
else
render 'edit'
end
end
и
def create
@user = current_user
@real = current_user.real_estates.build(real_params)
if @real.save
if params[:images]
# The magic is here ;)
params[:images].each do |image|
@real.pictures.create(image: image)
end
end
#flash[:success] = "Real Estate created!"
redirect_to root_path
else
render 'real_estates/new'
end
end
и вот такой обработчик ошибки
<% if object.errors.any? %>
<div id="error_explanation">
<div class="alert alert-danger">
The form contains <%= pluralize(object.errors.count, "error") %>.
</div>
<ul>
<% object.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
В контроллере update ошибки через раз показываются, а в create совсем нет
Возможно дело в
.build(real_params)
Я безуспешно пробовал заменить на .create(real_params)
Заранее благодарен!