[RUBY] Andere Definitionen als die sieben grundlegenden Aktionen in Rails

Überprüfung der grundlegenden Maßnahmen

Nachfolgend finden Sie die Standardaktionen von Rails スクリーンショット 2020-05-16 15.12.28.png

Definieren Sie die Aktion selbst

Wenn Sie eine andere Verarbeitung als die oben genannten grundlegenden Aktionen ausführen möchten, können Sie diese selbst definieren.

Sie können ** Sammlung ** und ** Mitglied ** verwenden, um das Routing zu diesem Zeitpunkt zu definieren.


Rails.application.routes.draw do
  resources :hoges do
    collection do
HTTP-Methode'Ursprünglicher Methodenname'
    end
  end
end
Rails.application.routes.draw do
  resources :hoges do
    member do
HTTP-Methode'Ursprünglicher Methodenname'
    end
  end
end

Der Unterschied besteht darin, ob das generierte Routing ** id ** hat oder nicht.

・ Sammlung →: Keine ID ・ Mitglied →: mit ID

Wenn Sie zu einer bestimmten Seite wechseln müssen, verwenden Sie ein Mitglied.

Und das Wichtigste ist, wo der Inhalt der Methode geschrieben werden soll.

Im Allgemeinen scheint es sogar am Entwicklungsstandort üblich zu sein, die Methode zu beschreiben, die sich auf die Interaktion mit der Tabelle (DB) im Modell bezieht.

Wenn Sie beispielsweise eine Suchfunktion implementieren möchten, schreiben Sie eine entsprechende Methode in das Modell und rufen Sie sie mit dem Controller auf (die Beschreibung des Suchformulars für Ansichten usw. wird weggelassen).

Anwendungsbeispiel

routes.rb


 resources :tweets do
    collection do
      get 'search'
    end
  end

tweet.rb


class Tweet < ApplicationRecord
  #Kürzung

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

tweets_controller.rb


class TweetsController < ApplicationController
 
  #Kürzung
  

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

end

Um jeden zu erklären,

Richten Sie zunächst das Routing für die Suchaktion ein. Ich muss nicht zur Detailseite gehen, um die Suchergebnisse anzuzeigen, daher verwende ich die Sammlung.

Wenn der Benutzer das Formular durchsucht, ruft der Controller die im Modell beschriebene Suchmethode aus der Suchaktion auf. Zu diesem Zeitpunkt wird das Suchergebnis als Argument übergeben (params [: keyword])

Das Suchergebnis wird der Variablensuche in der Suchmethode des Modells zugeordnet und kann in der Methode verwendet werden.

Wenn der Inhalt der Suche leer ist, werden alle Beiträge erfasst, und wenn ein Wert vorhanden ist, werden Beiträge erfasst, die dem bedingten Ausdruck im Inhalt der where-Methode entsprechen.

Recommended Posts

Andere Definitionen als die sieben grundlegenden Aktionen in Rails
Stellen Sie eine andere ID als die für das Rails-Routing ein
[Rails] Liste der in Controller definierten Aktionen
Group_by in Rails
Schienen Grundphilosophie
Modellassoziation in Rails
Hinzufügen von Spalten in Rails
Deaktivieren Sie Turbolinks in Schienen
^, $ im regulären Ausdruck von Rails
Verwenden Sie Bilder mit Schienen
Migration in Schienen verstehen
Teilen Sie route.rb in Rails6
Markdown in Rails implementiert
Verwenden Sie eine andere Rails-Vorlagenfunktion (ERB) als Controller (Aktionsansicht).