[RUBY] So erstellen Sie mit ActiveHash mehrere Pulldown-Menüs

【Überblick】

1. Schlussfolgerung </ b>

2. Was ist ActiveHash </ b>?

3. Verwendung von </ b>

4. Ergänzung </ b>

  1. Fazit

Erstellen Sie mehrere Modelle und listen Sie sie alle in db / migrate auf!


2. Was ist Active Hash?

ActiveHash ist ein Juwel, das Daten verarbeiten kann, indem unveränderte Daten in eine Modelldatei geschrieben werden, ohne sie einzeln in der Datenbank zu speichern </ b>!


3. Verwendung

Die Einführungsmethode von ActiveHash ist die gleiche wie bei anderen Edelsteinen, daher werde ich sie weglassen! Bereiten Sie außerdem eine Tabelle vor, die Sie widerspiegeln möchten.

Konsole


%rails g model abcdefghi --skip-migration

Ich werde es beschreiben! Der Grund für das Überspringen ist, dass keine Migration zur Datenbank erforderlich ist (Tabelle erstellen)!

Dann

model


 class Abcdefghi <ApplicationRecord

Denn es ist Schreiben wir ApplicationRecord in ActiveHash :: Base </ b> um! Sie können auch ApplicationRecord-Methoden verwenden, indem Sie an ActiveHash :: Base erben! (ActiveHash :: Base kann ähnliche Methoden von ApplicationRecord verwenden.)

model


 class Abcdefghi <ActiveHash::Base
self.data = [
   { id: 1, name: '--' },
   { id: 2, name: 'A' },
   { id: 3, name: 'B' },
   { id: 4, name: 'C' },
   { id: 5, name: 'D' },
   { id: 6, name: 'E' },
   { id: 7, name: 'F' },
   { id: 8, name: 'G' },
   { id: 9, name: 'H' },
   { id: 10, name: 'I' }
 ]

Verwenden Sie den Hash im Array-Format, als würden Sie eine Tabelle mit self.data erstellen. Die Inhalte, die aus der Datenbank in das Modell gezogen werden, sind genau so.

"{Id: 1, name: '-'}" wird beim Anzeigen häufig angezeigt.

Wiederholen Sie dies ab dem 3. Anfang so oft, wie Sie ein Pulldown-Menü erstellen möchten!

db/migrate/20******


 class Create****(Entsprechender Tabellenname) <ActiveRecord::Migration[6.0]
 def change
   create_table :*****(Entsprechender Tabellenname)  do |t|
     t.integer    :abcdeghi_id     , null: false
     t.timestamps
    end
  end
 end

Wird besorgt!

Der Grund für die Verwendung von _id besteht darin, die ID des Modells in die Tabelle zu bringen, die Sie speichern möchten.

Der Rest ist wie gewohnt

Konsole


% rails db:migrate

Alles was Sie tun müssen ist OK!

Ich möchte hier jedoch vorsichtig sein Es ist eine Vereinigung. Die Klasse Abcdefghi <ActiveHash :: Base hat vorerst eine Struktur wie eine DB-Tabelle, daher muss die Zuordnung beschrieben werden.

models/****.rb


class (Entsprechender Tabellenname)  < ApplicationRecord
  extend ActiveHash::Associations::ActiveRecordExtensions
  belongs_to_active_hash :abcdeghi
end

Bitte!


4. Ergänzung

model/****.rb


class ****(Entsprechender Tabellenname)< ApplicationRecord
validates :abcdefghi_id, numericality: { other_than: 1 }

Durch Schreiben von "{id: 1, name: '-'}" Sie können eine Bestätigung schreiben, dass außer "-" gespeichert werden kann </ b>! Dies bedeutet, dass Zahlen über ID: 1 wiedergegeben werden!


Recommended Posts