我正在使用paper_clip和simple_form gems。不幸的是,似乎纸夹验证错误没有显示在我的表单中。
我已经尝试了几种类型和语法的paper_clip content_type验证,甚至它们都可以工作(上传的文件类型受到限制)没有错误显示在表单中。
有谁知道如何解决这个问题?
答案 0 :(得分:2)
这是我怀疑的 - 回形针验证可能是在一个实际上不是simple_form输入的属性上进行的。
您的表单中可能包含以下内容:
<%= f.input :picture, :label => "Picture" %>
但是回形针的验证错误不会被放在“图片”上 - 它们会被放在另一个属性上,比如'picture_file_name'。由于simple_form具有“图片”输入,而不是“picture_file_name”输入,因此它不知道将错误放在何处,因此它们不会显示。
查看您的错误数组并确认获取错误的属性。然后在视图中使用simple_form的错误助手将该属性的错误放在适当的位置:
<%= f.error :picture_file_name %>
答案 1 :(得分:0)
不幸的是,paperclip为验证错误提供了自己的格式,将它们存储在3个不同的属性中,而不链接到基本模型属性:
* _ file_name,* _file_size,* _content_type
因此,simple_form或任何其他表单视图助手无法使用字段名称映射回形针验证错误。
您可以修补此处所述的回形针http://dev.mensfeld.pl/2013/05/paperclip-bootstrap-and-simpleform-working-together-on-rails/并永远忘记此问题