[RUBY] Verwendung von Active Hash

Einführung

Ich mache eine originelle App mit Rails. Ich habe Active Hash auf diese App angewendet. Aktiviert, um den Datensatz in ActiveHash im Pulldown-Format auszuwählen. Ich werde es aufschreiben, damit ich mich daran erinnern kann, auch wenn ich es vergesse.

Entwicklungsumgebung ruby 2.6.5 Rails 6.0.3.4

Inhaltsverzeichnis

  1. Einführung von Active Hash
  2. Modellvorbereitung
  3. Vorbereitung des Controllers
  4. Ansicht anzeigen

1. Einführung von Active Hash

Active Hash ist einer der Edelsteine. Zur Gem-Datei hinzufügen und im Terminal installieren.

Gemfile


gem 'active_hash'

Terminal


bundle install

2. Modellvorbereitung

Hier ist der Tag das Ziel von Active Hash. Beim Erstellen eines Modells - Wenn eine Sprungmigration hinzugefügt wird, wird die Migrationsdatei nicht erstellt. Wenn andere ActiveHash-Ziele vorhanden sind, erstellen Sie so viele Modelle wie möglich.

Terminal


rails g model day --skip-migration

Erben Sie ActiveHash im Modell. self.data ist ein Array, in dem Daten im Hash-Format gespeichert werden. Die ID und der Name (Tage) sind im Hash verknüpft.

app/models/day.rb


class day < ActiveHash::Base #← ActiveHash erben
 self.data = [
   { id: 1, name: '--' },
   { id: 2, name: '1 Tag' },
   { id: 3, name: '1 Woche' },
 ]
 end

Legen Sie als Nächstes fest, dass die ID der oben festgelegten Anzahl von Tagen in der Datenbank gespeichert wird. Nehmen Sie den Artikel als Beispiel für eine Tabelle, die ActiveHash zugeordnet ist.

2020***********_create_articles.rb


class CreateArticles < ActiveRecord::Migration[6.0]
 def change
   create_table :articles do |t|
     t.string     :title        , null: false
     t.text       :text         , null: false
     t.integer    :day_id       , null: false #Spalte, in der die ActiveHash-ID gespeichert ist
     t.timestamps
   end
 end
end

Vergessen Sie nicht zu migrieren. Modellassoziationen auch.

app/model/article


validates :day_id # _ID hinzufügen
belongs_to_active_hash :day # _ID nicht erforderlich

3. Vorbereitung des Controllers

Fügen Sie dem starken Parameter day_id hinzu, damit er gespeichert werden kann.

ruby:article.controller.rb


Beispiel:
  def new    
    @article = Article.new
  end

  def create    
    @article = Article.new(article_params)
  end

  private
  def article_params
    params.require(:article).permit(:title, :text, :day_id)
  end

Ansicht anzeigen

Es kann im Pulldown-Format von collection_select angezeigt werden. Die Argumente sind vom ersten bis zum fünften.

Streit Wert
Erstes Argument(Zu speichernde Spalte) day_id
Zweites Argument(Array von Objekten) Day.all
Drittes Argument(In Spalten gespeicherte Elemente) id
Viertes Argument(Spaltenname wird in den Optionen angezeigt) name
Fünftes Argument(Möglichkeit) {}
HTML-Option {class:"day-select"}
<%= f.collection_select(:day_id, Day.all, :id, :name, {}, {class:"day-select"}) %>

das ist alles

Recommended Posts

Verwendung von Active Hash
Die Fallstricke von Active Hash
[Rails] Über aktiven Hash
[Rails] Einführung von Active Hash
Listen Sie den Inhalt von Kategorien auf, die mit Active Hash erstellt wurden
Tabellenentwurf (mit Active Hash)
gem active_hash Über aktiven Hash
Über das Verhalten von Ruby Hash # ==
Hash
Extraktion von "Ruby" Double Hash * Review
[Java] Referenz / Update von Active Directory
Ich habe versucht, Active Hash zu erklären
Verwendung der Talend-Komponente (5) Erstellen Sie Ihre eigene Komponente