ruby-on-rails - Ruby on Rails 4 - 重复的回形针验证消息

标签 ruby-on-rails ruby-on-rails-4 paperclip

有什么办法可以防止 Paperclip 上传验证的验证消息出现两次?

这是我的模型:

has_attached_file :photo, :styles => { :thumb => "215x165" }, :default_url => "/images/:style/missing.png"

validates_attachment :photo, :presence => true,
:content_type => { :content_type => "image/jpg" },
:size => { :in => 0..0.5.megabytes }

这是我的观点:
<% if @product.errors.any? %>
<p>The following errors were found:</p>
  <ul>
    <% @product.errors.full_messages.each do |message| %>
      <li>- <%= message %></li>
    <% end %>
  </ul>
<% end %>

如果我上传无效文件,我会收到以下错误消息:
  • 照片内容类型无效
  • 照片无效

  • 有没有办法让其中一个出现?我曾尝试将 message: 添加到模型中。但是这也只是出现了两次!

    谢谢!

    最佳答案

    如果您检查 @model.errors 哈希,您可以看到它返回一个 :photo 属性的数组,以及每个回形针验证器的消息。

    {:photo_content_type=>["is invalid"], 
     :photo=>["is invalid", "must be less than 1048576 Bytes"], 
     :photo_file_size=>["must be less than 1048576 Bytes"] }
    

    你需要用一点 Ruby 过滤其中的很多。有很多方法可以解决此问题(请参阅 here 了解一些想法),但快速解决方法可能是删除 :photo 数组并仅使用来自回形针生成属性的消息。
    @model.errors.delete(:photo)
    

    这应该给您留下 @model.errors.full_messages像这样:
    ["Photo content type is invalid", "Photo file size must be less than 1048576 Bytes"]
    

    关于ruby-on-rails - Ruby on Rails 4 - 重复的回形针验证消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19933579/

    相关文章:

    ruby-on-rails - Elasticsearch + 轮胎 + PaperClip : Nested objects

    ruby-on-rails - 当遇到过时警告时,如何配置Rails引发错误?

    ruby-on-rails - ActiveRecord :Module 的未定义方法 `belongs_to'

    ruby-on-rails - 未定义的方法 `to_i' 与来自控制台的设计

    mysql - 使用 collection_check_boxes 有困难

    ruby-on-rails - 回形针 - 将 tiff 图像转换为 jpg 或 png

    mysql - Rails 从 Rails 中的子表中获取数据

    ruby-on-rails - 删除 Rails 中的关联模型

    ruby-on-rails - Rails 4 中的强参数和查找

    ruby-on-rails - 回形针:继续编辑