[RUBY] [Organisation] Für Sie, die mit render & redirect_to durcheinander geraten

Zielperson

Was ist der Unterschied zwischen redirect_to und render? Wie benutzt man? Diejenigen, die es wissen, sich aber nicht in ihren Gedanken organisieren können

Vorausgesetztes Wissen

Die Aktion im Rails-Controller wird endgültig gerendert und gibt eine Ansicht zurück. Mit anderen Worten, für jede ** Aktion wird immer 1 Render ** ausgeführt.

def index
end

Dies entspricht dem aktivierten Render-Index.

Fehlerbeispiel

Wenn das Rendern zweimal verarbeitet wird

def show
  ~~
    if ~~
      ~~
      render 'index'
    end
  render 'show'
end

Die Lösung besteht darin, eine Rendite zu erzielen

def show
  ~~
    if ~~
      ~~
      render 'index'
      return
    end
  render 'show'
end

render Eine Methode, die die Ansicht angibt, die in der Aktion aufgerufen werden soll. Das heißt, ** Sie können alles andere als die standardmäßig aufgerufene Ansicht aufrufen. ** ** ** Das Format der aufzurufenden Ansicht ist das RHTML-Format (.html / html.erb usw.)

--Wenn Sie eine andere Aktionsansicht auf demselben Controller aufrufen

microposts_controller.rb


def index
  render 'edit'
  render :edit
end

microposts_controller.rb


def index
  render "users/show"
  render template: "users/show"
end

microposts_controller.rb


def index
  render "/warehouse_app/app/views/products/show"
  render file: "/warehouse_app/app/views/products/show"
end

redirect_to Eine Methode, die eine GET-Anforderung an die angegebene URL sendet. Mit anderen Worten, wenn innerhalb einer Aktion aktiviert, ruft ** RCV erneut auf. ** ** **

microposts_controller.rb


def index
  redirect_to root_url
end

microposts_controller.rb


def index
  redirect_back(fallback_location: root_path)
end

Ich durfte mich beziehen

Schienenrichtlinien https://railsguides.jp/layouts_and_rendering.html#render%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B

@ 1ulce https://qiita.com/1ulce/items/282cccba1e44158489c8

@ morikuma709 https://qiita.com/morikuma709/items/e9146465df2d8a094d78

Recommended Posts

[Organisation] Für Sie, die mit render & redirect_to durcheinander geraten
Was tun, wenn Sie sich über OpenSSL mit pyenv install ärgern?
[Rails] Was tun, wenn Sie mit form_with keine Parameter abrufen können?
Wie fange ich mit schlank an?
Memo mit Struts2 + Ajax zu bekommen
Für Sie, die unbedingt eine Rückverfolgung benötigen
Wenn Sie es wagen, Integer mit "==" zu vergleichen ...
Ich habe versucht, mit Web Assembly zu beginnen
[Hinweis] Erste Schritte mit Rspec
[Rails] Geben Sie diesen Artikel an Sie weiter, die nach "devine name login" gesucht haben.