[RUBY] Die Identität der Schienenparameter [: id]

Die Daten, die Sie beim Definieren von Aktionen in Schienen erhalten

params[:id]

Ich habe es oft ausgedrückt als, aber ich habe die Bedeutung nicht verstanden, also habe ich mir eine Notiz gemacht. Ich hoffe, es ist hilfreich für diejenigen, die unter ähnlichen Problemen leiden.

Voraussetzungen

Angenommen, Sie möchten eine Funktion implementieren, um die Details eines Beitrags auf dem Bildschirm zu überprüfen, auf dem der Beitrag wie folgt angezeigt wird. <img width = "798" alt = "Myblog.png " src = "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/652172/60c1bb16-5d35-51f3-9bdf" -ec24eb3273ee.png "> Da es sich bei der im Detail anzuzeigenden Aktion um eine Show-Aktion handelt, erscheint es sinnvoll, eine Show-Aktion in der Steuerung zu definieren und eine entsprechende Ansicht vorzubereiten.

Aktionseinstellungen anzeigen

Ich denke, dass Show-Aktionen auf vielen Rails-Lernseiten oft wie folgt ausgedrückt werden.

  def show
    @post = Post.find(params[:id])
  end

Dies kann wie folgt zerlegt werden und hat jeweils die folgenden Bedeutungen. Post… Postmodell. In der Datenbank gespeicherte Daten veröffentlichen find… So erhalten Sie, indem Sie diejenige angeben, die der Bedingung aus dem Post-Modell entspricht params [: id]:… Bedingungen für Daten, die von find abgerufen wurden params… Daten, die beim Öffnen der URL eines bestimmten Tweets hängen bleiben : id… id mit dem Tweet verbunden

Mit anderen Worten bedeutet dies, dass die Daten, die der ID des Beitrags entsprechen, auf den der Benutzer zugreifen möchte, aus dem Beitragsmodell übernommen werden.

@ post… Weisen Sie das Obige einer Instanzvariablen zu, damit es mit externen Daten (oder Ansichten) verwendet werden kann.

Wenn Sie es also einer Instanzvariablen zuweisen, kann es in der Ansichtsdatei angezeigt werden.

Wenn ich tatsächlich das Routing überprüfe

post GET    /posts/:id(.:format)              posts#show

Der Routing-Pfad, der der Show-Aktion des Posts-Controllers entspricht, lautet post /: id. Da dies: id dem Beitrag hier entspricht, möchte ich den Beitrag mit derselben ID in der von der Show-Aktion aufgerufenen Ansicht anzeigen. Die Show-Aktion definiert also @post und lädt es wie oben beschrieben in die Ansicht.

Recommended Posts

Die Identität der Schienenparameter [: id]
[Bestellmethode] Legen Sie die Reihenfolge der Daten in Rails fest
Das Problem, dass der Inhalt von Parametern vollständig in der Ansicht [Rails] angezeigt wird
SSL in der lokalen Umgebung von Docker / Rails / Puma
(Ruby on Rails6) Anzeige der Datenbank, die die ID der Datenbank erhalten hat
[Rails] Bei der Beschreibung der Validierung ist Vorsicht geboten
[Schienen] Überprüfen Sie den Inhalt des Objekts
Über das Symbol <%%> in Rails erb
Erläuterung der Reihenfolge der Schienenrouten
Überprüfen Sie den Migrationsstatus von Schienen
Holen Sie sich die ID der automatischen Nummerierung
Reihenfolge der Verarbeitung im Programm
So erhalten Sie die ID des automatisch inkrementierten PRIMAY-Schlüssels in MyBatis
Ersetzen Sie die Vorschau durch Hochladen, indem Sie auf das Bild in file_field of Rails klicken
Holen Sie sich das Ergebnis von POST in Java
Überprüfen Sie den Inhalt der Parameter mit pry
[Rails] Liste der in Controller definierten Aktionen
Rails Refactoring Geschichte vor Ort gelernt
[Rails] Ändern Sie den Labelnamen von f.label
Die Geschichte des Schreibens von Java in Emacs
[Rails] Setzen Sie die Datenbank in der Produktionsumgebung zurück
Rails6: Extrahieren Sie das Bild im Aktionstext
Schreiben Sie die Bewegung von Rakefile in das Runbook
[Rails] Unterschied im Verhalten zwischen Delegat und has_many-through bei Eins-zu-Eins-zu-Viele
[Rails] In Bezug auf das Vorhandensein oder Fehlen von Klammern im Argument der Rendermethode
[Rails] Die Ursache dafür, dass nicht gepostet werden konnte, war in form_with
Ändern Sie das Speicherziel des Bildes in der Rails-App in S3. Teil 2
Zerlegen Sie die Installation von "$ printf": --no-document \ nupdate: --no-document \ n ">> ~ / .gemrc" in Kapitel 1 des Rails-Lernprogramms
Die Geschichte des einfachen String-Vergleichs in Java
[Java] Behandlung von Java Beans in der Methodenkette
Schaltfläche [Schienen], um zum Anfang der Seite zurückzukehren
Die Geschichte eines gewöhnlichen Othello in Java
[Ruby on Rails] Bis zur Einführung von RSpec
Über die Idee anonymer Klassen in Java
Ich habe versucht, die Sitzung in Rails zu organisieren
So erhalten Sie die ID eines Benutzers, der sich in Swift bei Firebase authentifiziert hat
Die Geschichte des Lernens von Java in der ersten Programmierung
Messen Sie die Größe eines Ordners mit Java
Empfehlung der Serviceklasse in Ruby on Rails
[Schienen] Mehrstufige Kategorien in der Ausschussliste anzeigen
Spüren Sie den Lauf der Zeit auch in Java
Group_by in Rails
[Rails] Implementierung von "Benachrichtigung auf irgendeine Weise benachrichtigen"
[Java] Ist es nicht erforderlich, "Identität" bei der Implementierung der equals () -Methode zu überprüfen?
Verwendung von JQuery in Rails 6 js.erb
So erstellen Sie eine eindeutige Datenkombination in der Schienen-Zwischentabelle
Überprüfen Sie das ID-Token eines von AWS Cognito in Java authentifizierten Benutzers
Importieren Sie Dateien derselben Hierarchie in Java
So überprüfen Sie Rails-Befehle im Terminal
[Rails] Rangfolge und Paginierung in der Reihenfolge der Likes
So installieren Sie Docker in der lokalen Umgebung einer vorhandenen Rails-App [Rails 6 / MySQL 8]
Für diejenigen, die MySQL für die Datenbank in der Umgebungskonstruktion von Rails6 ~ verwenden möchten.
Installieren Sie mehrere Senden-Schaltflächen in der Rails-Ansicht, um den Wert der gedrückten Schaltfläche abzurufen
[Rails] Ich möchte das Linkziel von link_to auf einer separaten Registerkarte anzeigen