2013-05-03 4 views
1

У меня есть следующий в модели для вложений (я использую Скрепку):Rails validate_presence сообщение - как отобразить?

class Attachment < ActiveRecord::Base 
    validates_presence_of :name 
    validates_presence_of :attach_file_name, :message => "No file selected" 

    has_attached_file :attach 

Большинство сообщений об ошибках, которые я получаю от Rails показать в верхней части экрана с помощью этого кода, который находится в моих макетах:

<% flash.each do |name, msg| %> 
<% if msg.is_a?(String) %> 
    <div class="alert alert-<%= name == :notice ? "success" : "error" %>"> 
     <a class="close" data-dismiss="alert">&#215;</a> 
     <%= content_tag :div, msg, :id => "flash_#{name}" %> 
    </div> 
<% end %> 
<% end %> 

Почему сообщение подтверждения не отображается?

Спасибо за помощь!

Update1

В приложении будет создаваться из вложения образуют _form.html.erb.

Это в форме:

<h4>Attachment:</h4> 
<%= f.file_field :attach, :label => 'Attachment' %> 
+0

Нам нужно больше информации. Где прилагается вложение, что модель должна быть недействительной? Как это делается? Создается ли она через AJAX? Потому что тогда ваша страница не обновляется, и поэтому она не будет внезапно появляться в вашей части флэш-ошибок. – MrDanA

+0

Я обновил свой вопрос - надеюсь, что это поможет. – Reddirt

+0

Откройте страницу в своей форме, затем перейдите на консоль и напишите 'gem install debugger', перезапустите сервер с помощью' -d', напишите '<% debugger%>' непосредственно перед '<% flash.each do | name, сообщ | %> ', заполните форму, чтобы вызвать это флэш-сообщение и отправить сообщение. Он будет продолжать загрузку без ответа, перейдите на консоль, где вы запустили рельсы, это будет подсказка. тип вспышки и посмотреть, что имеет переменная вспышка. Затем отредактируйте свой вопрос. - команды отладчика formore, используйте '?'. – fotanus

ответ

1

Для того, чтобы проверить наличие файла с Скрепка, попробуйте следующее:

class Attachment < ActiveRecord::Base 
    validates_presence_of :name 
    validates_attachment_presence :attach, :message => "No file selected" 

    has_attached_file :attach 

Кроме того, Рельсы 3 -way сделать validates следующий:

class Attachment < ActiveRecord::Base 
    validates :name, presence: true 
    validates :attach, attachment_presence: true, message: 'No file selected!' 

    has_attached_file :attach 
Смежные вопросы