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.
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.
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