This page looks best with JavaScript enabled

【Rails】別のモデルにerrors.messagesを持たせる

 ·   ·  ☕ 1 分で読めます
✏️

別のモデルにerrors.messagesを持たせる

1
2
registered_tag.errors.messages
=> {:tag_id=>["はすでに存在します"]}

のとき

1
tag.errors.messages.merge!(registered_tag.errors.messages)

によってtagに同じエラーメッセージを渡せる。

1
2
tag.errors.messages
=> {:tag_id=>["はすでに存在します"]}

i18n の対応

このままだと、tag.errors.full_messagesが日本語化されずに["Tagはすでに存在します"]になる。
registered_tag.errors.full_messages["タグはすでに存在します"]になるけど。

i18nはこのときtag.tag_idを参照するので、

1
2
3
4
5
ja:
  activerecord:
    attributes:
      tag:
        tag_id: タグ

こうしないといけない。

Share on

END
END
@aiandrox

目次