[RUBY] [Rails] Ich weiß nicht, wie ich das Modell verwenden soll ...

Hintergrund

Derzeit besuche ich eine bestimmte Programmierschule, aber bei der Implementierung der Suchfunktion (Suchfenster) wurde mir gesagt, dass ich ein Modell und einen Controller für die ordnungsgemäße Verarbeitung verwenden soll. Eh ... Es ist in Ordnung, alle Controller zu verwenden ... (Natürlich benutze ich sie jetzt aktiv separat!)

** ・ Controller… Erfasst Daten aus der Datenbank, speichert sie und beschreibt nur die einfache Verarbeitung ** ** ・ Modell: Beschreibt den von der Datenbank erhaltenen Wert, der eine komplizierte Verarbeitung durchführt ** Ich benutze es richtig mit dem Bild.

Ich wollte es jedoch nicht verwenden, da ich nicht verstehen konnte, warum der im Modell festgelegte ** "Verarbeitungskatalog" ** mit dem Controller verwendet werden kann, nein, ich konnte nicht. (Dieser Artikel ist kein Artikel zur Erläuterung der Suchfunktion. Er ist nur eine Zusammenfassung meiner Gedanken zur Verwendung des Modells.)

Implementierung der Suchfunktion

models/tweet.rb (Modell)


class Tweet < ApplicationRecord
  validates :text, presence: true
  belongs_to :user
  has_many :comments

  def self.search(search)
    return Tweet.all unless search
    Tweet.where('text LIKE(?)', "%#{search}%")
  end

end

controllers/tweets_controller.rb (Controller)


class TweetsController < ApplicationController

  def search
    @tweets = Tweet.search(params[:keyword])
  end

end


Unbekannter Punkt

① Was ist die "Such" -Methode des Controllers?
(Nicht in der Referenz aufgeführt?)

Es ist nicht in der Referenz aufgeführt. Weil ** "Methode von mir mit Modell gemacht" **! !!

② Was ist das Modell "Selbst"?
(Wenn Sie googeln, wird es normalerweise als "Klassenmethode" bezeichnet ...)

――Ich werde hier nicht näher darauf eingehen, aber diesem wird der Klassenname zugewiesen. (Die Ausdruckszuweisung dient der Übersichtlichkeit)

③ Warum kann der Controller den im Modell festgelegten "Verarbeitungskatalog" verwenden?
(Endlich das Hauptthema)

Hast du irgendwie verstanden? ??

Die Identität der Methode

Tatsächlich verwenden wir häufig verschiedene Methoden wie "Methode finden" und "Methode einschließen" Genau wie ich diesmal die "Suchmethode" gemacht habe, hat ** Rails ActiveRecord es geschafft **! !!

** Jedes Modell erbt ActiveRecord **, sodass Sie die Methode auf dem Controller verwenden können! (Genau genommen Klasse Tweet <ApplicationRecord <ActiveRecord :: Base) Wenn Sie sich die erste Zeile von tweet.rb (Tweet-Modell) ansehen, können Sie sie finden.

Dieser Typ

Nun, es wird länger, aber es gibt jemanden, der es noch nicht gelöst hat. Ja, was war eigentlich "self = class method"?

Klassenmethoden sind buchstäblich Methoden, die für "Klassen" verwendet werden können. Kannst du dich erinnern, was eine "Klasse" war? ?? Wenn Sie es nicht wissen, schauen Sie sich die erste Zeile von tweet.rb (Tweet-Modell) an.

** Ich verstehe immer noch nicht mehr! !! Lol **

Vielen Dank

Es war vielleicht etwas verwirrend, aber bitte verzeihen Sie mir, weil ich seit 2 Monaten programmiere. (Ich konnte meinen Kopf relativ ordnen.) Ich habe das schon lange geschrieben, aber danke, dass Sie bis zum Ende gelesen haben.

Wenn die Interpretation falsch ist, wäre ich sehr dankbar, wenn Sie mich wissen lassen könnten.

Mehr und mehr.

Recommended Posts

[Rails] Ich weiß nicht, wie ich das Modell verwenden soll ...
[Schienen] Verwendung der Kartenmethode
[Rails] Verwendung von Enum
Verwendung von Rails Join
[Rails] Verwendung der Validierung
[Rails] So verwenden Sie authenticate_user!
[Schienen] Verwendung von Scope
Verwendung der link_to-Methode
[Rails] Wie man Edelstein "devise" benutzt
Verwendung der include? -Methode
[Schienen] Verwendung von Geräten (Hinweis)
Verwendung der Methode form_with
[Rails] Verwendung von Flash-Nachrichten
Verwendung der Wrapper-Klasse
Verwendung von Ruby on Rails
[Rails] Verwendung von Active Storage
[Einführung in Rails] Verwendung von Render
[Java] Verwendung der File-Klasse
[Rails] Verwendung von ActiveRecord :: Bitemporal (BiTemporalDataModel)
[Java] Verwendung der toString () -Methode
Studieren der Verwendung des Konstruktors (Java)
[Verarbeitung × Java] Verwendung der Schleife
Verwendung von MySQL im Rails-Tutorial
Ich habe versucht zu verstehen, wie die Rails-Methode "redirect_to" definiert ist
Über die Sache, dass ich süchtig danach war, wie man Hashmap benutzt
[Verarbeitung × Java] Verwendung der Klasse
Ich habe versucht zu verstehen, wie die Rails-Methode "link_to" definiert ist
[Schienen] Verwenden Sie die Auswahlmethode nicht nur, um die Spalten einzugrenzen!
[Ruby on Rails] Verwendung von redirect_to
[Hinweis] Verwendung von Rails 6 Devise + Cancancan
[Verarbeitung × Java] Verwendung der Funktion
[Java] Verwendung der Calendar-Klasse
[Rails] Verwendung von video_tag zum Anzeigen von Videos
[Rails] Verwendung der Hilfsmethode, Confimartion
Verwendung von credentials.yml.enc aus Rails 5.2
So debuggen Sie die Verarbeitung im Ruby on Rails-Modell nur mit der Konsole
[Rails] So bestimmen Sie das Ziel anhand von "Rails-Routen"
Verwendung des Kameramoduls OV7725 (ESP32-WROVER-B)
[Rails] Wenn ich form_with benutze, friert der Bildschirm ein! ??
[Rails] Ich habe versucht, die Version von Rails von 5.0 auf 5.2 zu erhöhen
Ich habe versucht, die Sitzung in Rails zu organisieren
[Rails] Verwendung von Auswahlfeldern in Ransack
Verwendung von Schienen g Gerüst, Funktionen, Vorsichtsmaßnahmen
Ausgabe der Verwendung der Slice-Methode
Code zum Verbinden von Rails 3 mit PostgreSQL 10
Verwendung der replace () -Methode (Java Silver)
Verwendung von JQuery in Rails 6 js.erb
[Rails] Verwendung von PostgreSQL in einer Vagrant-Umgebung
So überprüfen Sie Rails-Befehle im Terminal
[Ruby-Grundlagen] Verwendung der Slice-Methode