[Ruby on Rails] So japanisieren Sie die Fehlermeldung des Formularobjekts (ActiveModel)

Zusammenfassung dieses Artikels

-Ich war besorgt über das Problem, dass der Validierungsfehler des Formularobjekts nicht ins Japanische übersetzt wurde, daher werde ich es als Memorandum belassen. ・ + Α Nebenbei habe ich den Unterschied zwischen ActiveRecord und ActiveModel angesprochen.

Entwicklungsumgebung

Mac OS Catalina 10.15.4 Ruby 2.6 Serie Schienen 6.0 Serie

Voraussetzungen

Wir haben gem'rails-i18n 'eingeführt und die Standardeinstellung für die Sprache ist bereits Japanisch. Außerdem wurde eine ja.yml-Datei im lokalen Verzeichnis von config erstellt.

Fehlerursachen bei der Übersetzung von Fehlermeldungen ins Japanische und Gegenmaßnahmen

Zusammenfassend ist das diesmal erstellte Formularobjekt ein Modell, das das Aktivmodell durch `` `include ActiveModel: Model``` erbt. Es scheint, dass das Problem darin bestand, es als Modell, das Activerecord geerbt hat, ins Japanische zu übersetzen.

ja.yml


ja:
  activerecord:
    models:
      detail:Genaue Information
      posts_tag:Post
    attributes:
      user:
        name:Name
      detail:
        age:Alter
        pr:PR-Erklärung
        area_id:Residenz
        occupation_id:Beruf
        interest_id:Interesse
      posts_tag: 
        title:Titel
        content:Überblick
        name:Etikett

ja.yml



ja:
  activerecord:
    models:
      detail:Genaue Information
    attributes:
      user:
        name:Name
      detail:
        age:Alter
        pr:PR-Erklärung
        area_id:Residenz
        occupation_id:Beruf
        interest_id:Interesse
  
  activemodel:
    models:
      posts_tag:Post
    attributes:
      posts_tag: 
        title:Titel
        content:Überblick
        name:Etikett

Beiseite

Übrigens besteht der Unterschied zwischen ActiveRecord und ActiveModel, der vom Standardmodell geerbt wird, das von "Rails G Model" generiert wird, darin, ob eine Kommunikation mit der Datenbank möglich ist oder nicht.

Ersteres ist möglich, sodass Sie die bereits mit Modellname.find usw. gespeicherten Daten abrufen können. Letzteres ActiveModel kann die Suchmethode jedoch normalerweise nicht verwenden.

Außerdem zur Validierung```validates uniqueness: true``Usw. kann in ActiveModel nicht beschrieben werden, da anhand der in der Datenbank gespeicherten Daten beurteilt wird, ob es eindeutig ist.

Während es so praktisch ist, ist Active Model ziemlich kompliziert.... Wie auch immer, danke, dass Sie bis zum Ende gelesen haben!

Recommended Posts