3 Stimmen

Bedingte root_url (index)

Ich möchte, dass meine Anwendung auf der Startseite unterschiedliche Daten anzeigt, je nachdem, ob der Benutzer eingeloggt ist oder nicht.

def index

  if current_user
    # render another controllers action
  else
    # render another controllers action
  end

end

Ich kann dies durch die Verwendung von render_component erreichen. Diese ist jedoch schon seit einiger Zeit veraltet. Obwohl ich es immer noch als Plugin verwenden kann, bin ich interessiert, wenn jemand einen besseren Ansatz hat. Beachten Sie einfach, dass das direkte Rendern der Ansicht eines anderen Controllers keine Option ist.

Danke.

3voto

Chris Heald Punkte 59198

Benutzen Sie einfach Ihr index Methode als öffentlichen Proxy für die spezifische Ansicht, die Sie rendern möchten.

def index
  if user?
    logged_in
  else
    logged_out
  end
end

private

def logged_in
  # stuff
  render :action => "logged_in"
end

def logged_out
  # stuff
  render :action => "logged_out"
end

1voto

Mike Buckbee Punkte 6623

Wenn es sich um einen relativ kleinen Teil der Daten handelt, würde ich das wahrscheinlich in einem View Helper tun.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X