無効なファイル タイプをアップロードしようとすると、モデルの添付フィールドの検証エラーがビューに表示されないという問題があります。私のモデルは次のように設定されています:
has_attached_file :avatar,
styles: {medium: "300x300>", thumb: "100x100>"}
validates_attachment :avatar, presence: true,
content_type: { content_type: /^image\/(jpg|jpeg|pjpeg|png|x-png|gif)$/ },
size: { in: 0..10.megabytes }
デバッガーでエラーを調べると、次のように表示されます。
(rdb:1) p @applicant.errors.to_hash
{:avatar_content_type=>["is invalid"]}
検証が機能していることはわかっているので、エラーが「avatar」フィールドではなく「avatar_content_type」フィールドにあることが問題であると思われます。simple_form ディスカッション フォーラムで同様の問題を見つけました。提案の 1 つは、エラー ヘルパーを使用することです。
<%= f.input :avatar %>
<%= f.error :avatar_content_type %>
この種の動作はしますが、通常のエラーに含まれるマークアップとクラスが含まれておらず、適切にスタイル設定されていません。Twitterのブートストラップで機能する、私が見落としているアプローチはありますか?