1. Schlussfolgerung </ b>
2. Was ist ActiveHash </ b>?
3. Verwendung von </ b>
4. Ergänzung </ b>
Erstellen Sie mehrere Modelle und listen Sie sie alle in db / migrate auf!
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>!
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!
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