1

我在附件模型中有以下内容(我使用的是回形针):

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 %>

为什么不显示验证消息?

谢谢您的帮助!!

更新1

附件是从附件表单 _form.html.erb 创建的。

这是以下形式:

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

1 回答 1

1

为了测试来自 Paperclip 的文件是否存在,试试这个:

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

  has_attached_file :attach

此外,Rails 3 的做法validates如下:

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

  has_attached_file :attach
于 2013-05-03T16:17:20.797 回答