2012-03-29 15 views
4

gesetzt wurden Ich bin ein Cookie in jquery wie dieser Einstellung (funktioniert gut und das Cookie erzeugt wird):Wie kann ich Cookies in Schienen lesen, die von jquery

$(document).ready(function() { 
    var consp = $("input[home]").attr("home"); 
    $("input[name='commit']").click(function() { 
     $.cookie('home', consp); 
    }); 
}); 

In meinem Controller ich versuche zu bekommen Halten Sie diesen Cookie-Wert. Also bin ich mit Standardwerk von Cookies wie diese

def some_method 
    @value = cookies[:home] 
end 

Aber wenn ich Ausgang des Wert von @value, nichts zurückgegeben. Dies passiert nur, wenn ich den Cookie mit jquery gesetzt habe, passiert aber nicht, wenn ich den Cookie direkt über Rails setze (keine jquery). Irgendwelche Gedanken, warum dies geschieht? Dank

+0

Hier ist die gleiche Methode @Hishalv vorgeschlagen, mit dem [Mozilla Cookie Framework] (http://stackoverflow.com/questions/15099420/set-a-cookie-from-view-then-read-it-from-controller -in-rails/40298349 # antwort-40298349). – rebagliatte

Antwort

11

Ok, dachte dieses heraus:

ich dieses Cookie war die Schaffung, wenn ich ein Formular, und aufgrund der MVC-Architektur Vorlage wurde die Einreichung Schienen auf eine auf der ursprünglichen Seite auf erfolgreiche Aktion und die Umleitung erstellen zurück umleiten. Also ich brauchte dieses Cookie, um auf allen Seiten gültig zu sein, also jquery.cookie plugin.

Die Lösung war die Bahnparameter in die Mischung wie diese

$.cookie('the_cookie', 'the_value', { expires: 7, path: '/' }); 

dieser dann das Cookie von allen Seite Routen zu lesenden passieren lässt.

Verwandte Themen