[RUBY] Versuchen Sie es mit Trailblazer

Einführung

Nachdem ich etwas über die Existenz von Gem und Trailblazer erfahren hatte, die eine abstrakte Ebene bilden, versuchte ich es mit Create. Der Umriss von Trailblazer wird in anderen Artikeln auf leicht verständliche Weise erklärt, daher werde ich ihn weglassen.

Dieser Artikel war sehr leicht zu verstehen. TrailBlazer-Übersicht, die ich zusammenfassen wollte

Umgebung

ruby '2.7.2' 'rails', '~> 6.0.3' template engine: haml

Create

Wegbereiter Verzeichnisstruktur

.
└── todo
    ├── cell
    │   ├── index.rb
    │   └── new.rb
    ├── contract
    │   └── form.rb
    ├── operation
    │   ├── create.rb
    │   └── index.rb
    └── view
        ├── form.haml
        ├── index.haml
        └── new.haml

Operation


module Todo::Operation
  class Create < Trailblazer::Operation
    class Present < Trailblazer::Operation
      step Model(Todo, :new)
      step Contract::Build( constant: Todo::Contract::Form )
    end

    step Subprocess(Present) #gegenwärtiger Klassenschrittaufruf
    step Contract::Validate(key: :todo) #Validierung mit Vertrag
    step Contract::Persist() #Im Modell speichern
  end
end

Contract


module Todo::Contract
  class Form < Reform::Form
    include Reform::Form::ActiveModel
    property :title
    property :description
    property :completed
      
    validates :title, presence: true
    validates :description, length: { minimum: 2 }

    #Sie können auch überschreiben
    # def title
    #  super.capitalize
    # end
  end
end

Cell

module Todo::Cell
  class New < Trailblazer::Cell
    include ActionView::RecordIdentifier
    include ActionView::Helpers::FormOptionsHelper
    include SimpleForm::ActionViewExtensions::FormHelper
  end
end

View

= simple_form_for(model, html: {novalidate: true}) do |f|
  = f.input :title, placeholder: "Title"
  %br
  = f.input :description, as: :text, placeholder: "Description"
  %br
  = f.submit 'Submit'
  = link_to 'Back', todos_path

Bestätigung

trab-todo

[Projekt] Ich habe es diesmal versucht (https://github.com/izumiiii/trail-todo)

Referenzartikel

TrailBlazer-Übersicht zusammengefasst trailblazer

Recommended Posts

Versuchen Sie es mit Trailblazer
Versuchen Sie DI mit Micronaut
Probieren Sie WebSocket mit Jooby aus
Erstellen Sie eine XML-RPC-API mit Wicket
Versuchen Sie es mit GloVe mit Deeplearning4j
Versuchen Sie eine DB-Verbindung mit Java
Versuchen Sie gRPC mit Java, Maven
Erstellen Sie einen Spielplatz mit Xcode 12
Versuchen Sie, XML mit JDOM zu lesen
Erstellen Sie mit Spring Boot einen Mikrodienst
Erstellen Sie mit JAVA eine unveränderliche Klasse
Erstellen Sie mit Docker eine Vue3-Umgebung!
Erstellen Sie PDF mit itext7-freiem Layout: Text-
Erstellen Sie ein Portfolio mit Rails + Postgres SQL
Erstellen Sie eine App mit Spring Boot 2
Versuchen Sie, den Cloudera Manager mit Docker auszuführen
Erstellen Sie PDF mit itext7-freiem Layout: Tabelle-
Versuchen Sie, recaptcha mit eingebettetem Jetty zu implementieren.
Versuchen Sie, PostgreSQL-Arrays mit JDBC zu bearbeiten
Versuchen Sie es mit Redis mit Java (jar)
Erstellen Sie mit Docker eine SolrCloud-Überprüfungsumgebung
Erstellen Sie eine Excel-Datei mit poi
Erstellen Sie eine App mit Spring Boot
Erstellen Sie zwei DatePicker, die mit TextField verknüpft sind
Erstellen Sie eine Befehlszeilen-App mit maven
Versuchen Sie eine syntaktische Analyse englischer Sätze mit Stanford CoreNLP
Erstellen Sie PDF mit itext7 ~ HelloWorld ~
Versuchen Sie die bidirektionale Kommunikation mit gRPC Java
Versuchen Sie, eine Server-Client-App zu erstellen
Erstellen Sie meine Seite mit Rails
Erstellen Sie Ausnahmen mit einer Fluid-Schnittstelle
Erstellen Sie ein Maven-Projekt mit Befehlen
Lassen Sie uns eine Instanz mit .new selbst erstellen. .. ..
[Java] Erstellen Sie mit Gradle ein ausführbares Modul
Erstellen Sie mit dem Befehl eine JAR-Datei
[Rails6] Erstelle eine neue App mit Rails [Anfänger]
Erstellen Sie mit Dropwizard eine einfache Webanwendung
Erstellen Sie Ihren eigenen Validator mit Bean Validation
Erstellen Sie mit Spring Batch eine einfache On-Demand-Charge
Versuchen Sie, MySql und Blazor mit Docker-Compose auszuführen
Probieren wir WebSocket mit Java und Javascript aus!
[Schienenentnahme] Erstellen Sie eine einfache Entnahmefunktion mit Schienen
Erstellen Sie mit Docker eine Spring Boot-gradle-mysql-Entwicklungsumgebung
Versuchen Sie es mit Spring Boot mit VS-Code
Schütteln Sie Ihre Hände mit ARKit + Metal
[Docker] Erstellen Sie mit Docker eine Node.js + Express + Webpack-Umgebung
Erstellen eines einfachen Balkendiagramms mit MPAndroidChart
Versuchen Sie, eine Anmeldefunktion mit Spring-Boot zu implementieren