Besser als redirect_to :back 0

Posted by fwoeck
on Sunday, October 26

ist

redirect_back_or_default('/')

weil nach root geleitet wird, falls der Client den Referer nicht überträgt.

Die Funktion ist Bestandteil des restful_authentication-Plugins und erwartet, dass man die back-Postition zuvor mit folgender Funktion gesichert hat:

store_location

HTTP_REFERER in einer Session ablegen 0

Posted by fwoeck
on Tuesday, October 14

Den HTTP_REFERER kann man einfach in einer Session speichern, um ihn dann später als Back-Link zu benutzen, falls der Userclient diesen Header überträgt:

def create
  current_cart.cart_items.create!(params[:cart_item])
  flash[:notice] = "Product added to cart" 
  session[:last_product_page] = request.env['HTTP_REFERER'] || products_url
  redirect_to current_cart_url
end

Und im entsprechenden View:

<% if session[:last_product_page] %>
  <%= link_to "Continue Shopping", session[:last_product_page] %> |
<% end %>