[RUBY] [Rails] Einführung von Active Hash

Einführung

Active_Hash ist ein Juwel, das Daten verarbeiten kann, ohne sie in der Datenbank zu speichern, indem unveränderte Daten wie Präfekturname und Kategorieauswahl direkt in der Modelldatei beschrieben werden. Mit Active_Hash können Sie die ActiveRecord-Methode für die unveränderten Daten verwenden, die direkt in der Modelldatei beschrieben werden.

Inhaltsverzeichnis

  1. Installieren Sie Active Hash
  2. Erstellen eines Modells
  3. Bearbeiten Sie die Migrationsdatei
  4. Zuordnungseinstellungen
  5. Ansichtsdatei bearbeiten

1. Installieren Sie Active Hash

Beschreiben Sie Folgendes in der Gem-Datei. Führen Sie dann die Bundle-Installation mit dem Befehl aus.

gemfile


gem 'active_hash'

2. Erstellen Sie ein Modell

Dieses Mal erstellen wir ein Post-Modell und ein Kategoriemodell. Erstellen Sie das Post-Modell wie gewohnt.

Terminal
rails g model post

Verwenden Sie die Option "--skip-Migration", wenn Sie ein Kategoriemodell erstellen. Verwenden Sie "--skip-Migration", um zu verhindern, dass die Migrationsdatei generiert wird. Dieses Mal erstellen wir keine Migrationsdatei, da wir die Kategoriedaten nicht in der Datenbank speichern.

Terminal
rails g model category --skip-migration

Definieren Sie die Category-Klasse in category.rb und erben Sie von der ActiveHash :: Base-Klasse. Durch das Erben von ActiveHash :: Base können ActiveRecord-Methoden für die im Kategoriemodell definierten Objekte verwendet werden.

app/models/genre.rb


class Category < ActiveHash::Base
  self.data = [
    { id: 1, name: '---' },
    { id: 2, name: 'Lotion' },
    { id: 3, name: 'Emulsion' },
    { id: 4, name: 'Alles in einem' },
    { id: 5, name: 'Reinigung' },
    { id: 6, name: 'Gesichtswäsche' },
    { id: 7, name: 'Sonnenschutz' },
    { id: 8, name: 'Lippe' },
    { id: 9, name: 'Parfüm' },
    { id: 10, name: 'Haarfarbe' },
    { id: 11, name: 'Haar Styling' },
    { id: 12, name: 'Shampoo Conditioner' },
    { id: 13, name: 'Kontaktlinse' }
  ]
end

Die Daten werden in Form eines Hashs in einem Array gespeichert.

3. Bearbeiten Sie die Migrationsdatei

Erstellen Sie eine category_id-Spalte in der Posts-Tabelle. Es ist _id, weil es die der ID zugeordnete Kategorie abruft und die ID der Kategorie in der Posts-Tabelle speichert. Der Spaltentyp sollte ** Integer-Typ ** sein.

db/migrate/20XXXXXXXXXXXX_create_articles.rb


~Abkürzung~
t.integer :category_id, null: false
~Abkürzung~

4. Zuordnungseinstellungen

ActiveHash bietet eine Gehorsam_zu_Aktiv_Hash-Methode. Wenn Sie eine Zuordnung für ein mit ActiveHash erstelltes Modell einrichten möchten, verwenden Sie die Methode includes_to_active_hash. Sie können die Methode includes_to_active_hash verwenden, indem Sie ActiveHash :: Associations :: ActiveRecordExtensions schreiben.

app/models/post.rb


class Post < ApplicationRecord
  extend ActiveHash::Associations::ActiveRecordExtensions
  belongs_to_active_hash :category
end

5. Ansichtsdatei bearbeiten

Dieses Mal werden die Daten im Pulldown-Format angezeigt. Verwenden Sie daher die Methode collection_select, um sie anzuzeigen.

<%= form.collection_select(Spaltenname, der gespeichert werden soll,Array von Objekten,In Spalten gespeicherte Elemente(Name der DB-Spalte, auf die bei der Anzeige verwiesen werden soll),Spaltenname wird in den Optionen angezeigt,Möglichkeit,HTML-Option(Klasse usw.)) %>
Beispiel

ruby:app/views/posts/new.html.erb


<%= f.collection_select(:category_id, Category.all, :id, :name, {}, {class:”category-select"}) %>

Referenzlink

https://github.com/zilkey/active_hash

Recommended Posts

[Rails] Einführung von Active Hash
[Rails] Über aktiven Hash
[Rails] Einführung in jquery
[Rails] Einführung in das Gerät
Einführung in Bootstrap in Rails 5
Bootstrap in Rails einführen !!
Verwendung von Active Hash
Wir stellen vor: Rails6 + Bootswatch / Honoka
Die Fallstricke von Active Hash
Tabellenentwurf (mit Active Hash)
gem active_hash Über aktiven Hash
Was ist Rails Active Record?
Hash
Einführung des vollständigen Kalenders in die Rails-Anwendung
[Rails] Verwendung von Active Storage
Einführung in React to Rails mit React-Rails
Ich habe versucht, Active Hash zu erklären
[Ruby on Rails] Informationen zum Active Record-Rückruf
Rails Active Storage verkleinert Bilder vor dem Hochladen