[RUBY] gem active_hash Über aktiven Hash

Was ich letzte Nacht gemacht habe Weil die Einführung von aktivem Hash erfolgreich war Memorandum

ich meine Ich war ungeduldig, weil ich die Beschreibung der Migration von der Primärquelle nicht finden konnte ...

Umgebung

ruby 2.5 rails 5.2.4.3 devise 4.7.2 active_hash 3.1.0

Referenz

zilkey/active_hash: collection_select

Es wird verwendet, um ein wenig Daten zu speichern.

Ich möchte mehrere Orte mit einer App verwenden, z. B. Datenauswahl für Präfekturen, Aber erst wenn ich DB benutze. Hmm ... Ich empfehle es manchmal. Kann es in Kategorien verwendet werden? ?? ↑ Die Kategorie war ein Juwel namens Abstammung. https://github.com/stefankroes/ancestry

Einfache Einführung

zu Edelstein

Gemfile


gem 'active_hash'

Das Übliche

bundle install

Modellzusatz OTZ, der bisher einfach war

☓ Schienen g Modell Modellname ← Nr. Diesmal sind es Daten aus Präfekturen

models/prefecture.rb


class Prefecture < ActiveHash::Base
  self.data = [
      {id: 1, name: 'Hokkaido'}, {id: 2, name: 'Präfektur Aomori'}, {id: 3, name: 'Präfektur Iwate'},
      {id: 4, name: 'Präfektur Miyagi'}, {id: 5, name: 'Akita'}, {id: 6, name: 'Präfektur Yamagata'},
      {id: 7, name: 'Präfektur Fukushima'}, {id: 8, name: 'Präfektur Ibaraki'}, {id: 9, name: 'Präfektur Tochigi'},
      {id: 10, name: 'Präfektur Gunma'}, {id: 11, name: 'Saitama'}, {id: 12, name: 'Präfektur Chiba'},
      {id: 13, name: 'Tokio'}, {id: 14, name: 'Präfektur Kanagawa'}, {id: 15, name: 'Präfektur Niigata'},
      {id: 16, name: 'Präfektur Toyama'}, {id: 17, name: 'Präfektur Ishikawa'}, {id: 18, name: 'Präfektur Fukui'},
      {id: 19, name: 'Präfektur Yamanashi'}, {id: 20, name: 'Präfektur Nagano'}, {id: 21, name: 'Präfektur Gifu'},
      {id: 22, name: 'Präfektur Shizuoka'}, {id: 23, name: 'Präfektur Aichi'}, {id: 24, name: 'Präfektur Mie'},
      {id: 25, name: 'Präfektur Shiga'}, {id: 26, name: 'Kyoto'}, {id: 27, name: 'Präfektur Osaka'},
      {id: 28, name: 'Präfektur Hyogo'}, {id: 29, name: 'Präfektur Nara'}, {id: 30, name: 'Präfektur Wakayama'},
      {id: 31, name: 'Präfektur Tottori'}, {id: 32, name: 'Präfektur Shimane'}, {id: 33, name: 'Präfektur Okayama'},
      {id: 34, name: 'Präfektur Hiroshima'}, {id: 35, name: 'Präfektur Yamaguchi'}, {id: 36, name: 'Präfektur Tokushima'},
      {id: 37, name: 'Präfektur Kagawa'}, {id: 38, name: 'Präfektur Ehime'}, {id: 39, name: 'Präfektur Kochi'},
      {id: 40, name: 'Präfektur Fukuoka'}, {id: 41, name: 'Präfektur Saga'}, {id: 42, name: 'Präfektur Nagasaki'},
      {id: 43, name: 'Präfektur Kumamoto'}, {id: 44, name: 'Präfektur Oita'}, {id: 45, name: 'Präfektur Miyazaki'},
      {id: 46, name: 'Präfektur Kagoshima'}, {id: 47, name: 'Präfektur Okinawa'}
  ]
end

Modell Postscript Als Grundlagen der Primärquelle

Dieses Mal Adressmodell Assoziationsadresse viele ← → 1 Präfektur

models/address.rb


  extend ActiveHash::Associations::ActiveRecordExtensions
  belongs_to :prefecture

Migrationsinformationen von hier aus ändern ...

Bearbeiten Sie die entsprechende Migrationsdatei Diesmal

migrate/*****_create_addresses.rb


t.integer :prefecture_id,        null: false, default: nil

null ~ ist deine Wahl ♪ Nach dem Umschreiben werden die üblichen Schienen db: migrate Schreibe auch starke Parameter um ^^ Vielleicht registrations_controller.rb Von: Nur der Präfekturteil. Ich habe es geschafft: prefecture_id.

registrations_controller.rb


  protected

  def address_params
    params.require(:address).permit(:family_name_kanji,:first_name_kanji,:family_name_kana,:first_name_kana,:post_number,:prefecture_id,:city,:block_number,:apartment_name,:phone_number)
  end

Ansicht ändern

Der Unterricht war mühsam.

= f.collection_select :prefecture_id,Prefecture.all,:id,:name,{prompt:"--"},{class:"inputDefault"}

Das ist ↓.

<select class="inputDefault" name="address[prefecture_id]" id="address_prefecture_id"><option value="">--</option>
<option value="">--</option>
<option value="1">Hokkaido</option>
<option value="2">Präfektur Aomori</option>
<option value="3">Präfektur Iwate</option>
・ ・ ・ ・ ・ ・ ・
<option value="47">Präfektur Fukuoka</option></select>
= f.collection_select :Spaltenname,Zu registrierende Daten,Zu zeigende Daten,Erste Daten(ausgewählt ist auch hier),Diesmal Zeitklasse

Vielleicht ist es vorbei. Ich hatte keine Ahnung, die Migrationsspalte von t.string: Präfektur in die oben genannte Spalte zu ändern, daher habe ich mich bemüht, die Registrierungsdaten von collection_select in: name ^^; Ein paar Stunden TT in kürzester Zeit

Recommended Posts

gem active_hash Über aktiven Hash
[Rails] Über aktiven Hash
[Über Double Hash]
Über Gem :: ConflictError (activesupport)
Informationen zu DelegationError (Active Storage)
[Rails] Einführung von Active Hash
Die Fallstricke von Active Hash
[Anfänger] Über Active Storage
Tabellenentwurf (mit Active Hash)
Über das Verhalten von Ruby Hash # ==
Ich habe versucht, Active Hash zu erklären