[Ruby on Rails] Gemeinsame Verarbeitung zwischen Controllern (unter Verwendung von Konkaven)

Einführung

Mit zunehmender Anzahl von Site-Seiten nimmt die Beschreibung desselben Controllers zu. Wenn Sie zu diesem Zeitpunkt Bedenken verwenden, wird die Beschreibung sauberer und die Lesbarkeit verbessert.

Tatsächlicher Code

app/controllers/posts_controller.rb


class PostController < ApplicationController
  before_action :set_posts
  def set_posts
    @posts = Post.all
  end
end

app/controllers/users_controller.rb


class UserController < ApplicationController
  before_action :set_posts
  def set_posts
    @posts = Post.all
  end
end

Wie oben erwähnt, gibt es einen allgemeinen Prozess namens set_posts. Wenn sich jedoch etwas ändert, müssen beide korrigiert werden, was ein Ärger ist. Der Weg, um diese zu lösen, besteht darin, Bedenken zu verwenden.

Erstellen einer Anliegen-Datei

Erstellen Sie eine Datei unter App / Controller / Konzerte. Diesmal lautet der Dateiname "postable.rb".

app/controllers/concerns/postable.rb


module Postables
extend ActiveSupport::Concern

  def set_posts
    @posts = Post.all
  end

end

Um jeden Controller aufzurufen include postablesEs wird beschrieben als.

app/controllers/posts_controller.rb


class PostController < ApplicationController
  include Postables
  before_action :set_posts
end

app/controllers/users_controller.rb


class UserController < ApplicationController
  include Postables
  before_action :set_posts
end

Das ist in Ordnung.

Zusammenfassung

Auf diese Weise müssen Sie eine Korrektur nur an einer Stelle korrigieren, und Sie können sofort reagieren, selbst wenn ein Fehler auftritt. Es wird empfohlen, es zu verwenden, da die fehlende Beschreibung zur Wartbarkeit führt.

Auf Twitter werden auch Technologien und Ideen hochgeladen, die nicht auf Qiita hochgeladen wurden Ich wäre Ihnen dankbar, wenn Sie mir folgen könnten. Klicken Sie hier für Details https://twitter.com/japwork

Recommended Posts

[Ruby on Rails] Gemeinsame Verarbeitung zwischen Controllern (unter Verwendung von Konkaven)
[Ruby on Rails] Codeprüfung mit Rubocop-Airbnb
[Ruby on Rails] Bild-Diashow mit Skippr
[Rails] Erben Sie Parameter zwischen Controllern mit Sessions Helper
Ruby on Rails Elementary
Ruby on Rails Grundlagen
Ruby On Rails Association
Versuchen Sie es mit dem Ruby on Rails-Abfrageattribut
Ruby on Rails Lernrekord -2020.10.03
Portfolioerstellung Ruby on Rails
[Ruby on Rails] Debuck (bindend.pry)
Ruby on Rails Lernrekord -2020.10.05
Ruby on Rails Lernrekord -2020.10.09
Ruby on Rails lernen Rekord-2020.10.07 ②
Ruby on Rails lernen Rekord-2020.10.07 ①
Brechen Sie die Ruby on Rails-Migration ab
Ruby on Rails Lernrekord -2020.10.06
Zusammenfassung der Ruby on Rails-Validierung
Ruby on Rails Grundlegendes Memorandum
Ruby on Rails Einstellung der automatischen E-Mail-Sendefunktion (über Google Mail)
[Ruby on Rails] Einfache Scroll-Animation von Javascript (mit ScrollReveal.js)
[Ruby on Rails] Unendliches Scrollen mit Gem Kaminari und Jscroll
[Ruby on Rails] Leseversuch (: [],: Schlüssel)
Ruby on Rails-Variablen, konstante Zusammenfassung
Installation von Ruby + Rails unter Ubuntu 18.04 (rbenv)
[Ruby on Rails] Paging-Funktion eingeführt
Grundkenntnisse in Ruby on Rails
Progate Ruby on Rails5 Rückblick
Installieren Sie Ruby 2.5 unter CentOS 7 mit SCL
Verwendung von Ruby on Rails
Ruby on Rails Japanisch-Englisch kompatibler i18n
(Ruby on Rails6) Gepostete Inhalte "löschen"
[Ruby on Rails] CSV-Ausgabefunktion
Ruby on Rails 6.0-Umgebungskonstruktionsnotiz
[Ruby on Rails] Erstellung der Bestätigungsseite
Ruby On Rails entwickelt Routing-Konflikte
[Ruby on Rails] Implementierung der Kommentarfunktion
[Ruby on Rails] DM, Chat-Funktion
[Ruby on Rails] Praktische Hilfsmethode
[Ruby on Rails] Stoppen Sie "Looping bis ..."
So erstellen Sie eine Abfrage mithilfe von Variablen in GraphQL [Verwenden von Ruby on Rails]
So debuggen Sie die Verarbeitung im Ruby on Rails-Modell nur mit der Konsole
[Ruby on Rails] Einführung der Anfangsdaten
[Ruby on Rails] Suchfunktion (nicht ausgewählt)
[Rails] Hinzufügen der Ruby On Rails-Kommentarfunktion
Ruby on Rails6 Praktischer Leitfaden cp13 ~ cp15 [Memo]
[Ruby on Rails] Test mit RSpec anzeigen
[Ruby on Rails] 1 Modell CRUD (Routing Main)