Znalazłem odpowiedź, wygląda na to, że Railsy starają się być wydajne, tworząc sesję tylko wtedy, gdy jest coś do przechowywania. Zatem dostęp do session.id bez zapisywania czegoś nie zwraca spójnych wyników.
Musisz wymusić utworzenie sesji, przechowując w niej coś.
TLDR:Dodaj to gdzieś, zanim uzyskasz dostęp do identyfikatora sesji.
session[:foo] = "bar"
Źródło :http://www.gani.com.au/2013/08/force-session-creation-in-rails/