显示关联模型的错误消息

时间:2017-11-14 08:00:22

标签: ruby-on-rails validation paperclip

这是我的Article模型

class Article

has_many :pictures, autosave: true, dependent: :destroy

validates :title, presence: true
validates :text, presence: true 

这是我的Picture模型

class Picture
include Mongoid::Document
include Mongoid::Paperclip

belongs_to :article
has_mongoid_attached_file :pic,
    preserve_files: true,
    :url => "/public/pictures/:style/:basename.:extension",
    styles: { format: "400x400", thumb: "150x150>" }


validates_attachment :pic, content_type: { content_type: /\Aimage\/.*\z/ },
size: { in: 50.kilobytes..3.megabytes }

我想在我的视图中显示所有错误消息,但如果图片无效,我会有很多消息发生错误。例如,如果内容类型无效,我有:

  1. @article.errors.full_messages中的“图片无效”(我不需要)
  2. @article.pictures.first.full_messages中的“图片无效”(我不需要)
  3. @article.pictures.first.full_messages中的“Pic_content_type无效”(这只是我真正需要的一条消息)
  4. 有什么想法吗?提前致谢并抱歉我的英文

1 个答案:

答案 0 :(得分:0)

我不确定我理解你的问题,但有些事情会让你想到你可以调查。

Paperclip附带了一些validation选项,您可能需要考虑修改它们以产生所需的错误消息,如here所述。

似乎您可能需要通过遍历收到的错误消息数组来选择要显示的正确错误消息。

@article.pictures.first.full_messages[index of message you want to display]

另一方面,我看到您使用reg exp模式进行内容类型验证,Paperclip文档警告漏洞如果保持打开状态。他们推荐这样的东西:

validates_attachment :pic, 
 content_type: { content_type: ["image/jpeg", "image/gif", "image/png"] }

我希望这对你至少没什么帮助。