2013-05-03 28 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創建的嗎?因爲那麼你的頁面沒有被刷新,所以它不會突然出現在你的Flash錯誤部分。 – MrDanA 2013-05-03 15:31:37

+0

我更新了我的問題 - 希望有所幫助。 – Reddirt 2013-05-03 15:38:16

+0

在窗體上打開頁面,然後轉到控制檯並寫入'gem install debugger',使用'-d'重新啓動服務器,在'<%flash.each do | name之前寫入<%debugger%>'味精| %>',用一種方式填寫表單以觸發這個flash消息併發布。它將繼續加載而不回答任何內容,轉到您啓動導軌的控制檯,這將是一個提示。鍵入閃光燈並查看可變閃光燈的功能。然後編輯你的問題。 - formore調試器命令,使用'?'。 – fotanus 2013-05-03 15:50:43

回答

1

爲了測試從回形針一個文件的存在,嘗試:

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

    has_attached_file :attach 

同樣,軌道3通做validates如下:

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

    has_attached_file :attach