newb's quick question on session variable vs. params in 'pretty' urls


Is there a compelling reason to prefer reliance on the params hash vs. the same info stored in a session hash? So, for example, params[:id] = @loan vs. session[:loan_id] = It matters because I can make prettier urls if I store certain uniquely identifying model attributes as session variables.

The drawback I can think of in preferring session variables to the params hash is that a user cannot be guaranteed to recover via the same url the same model instance under the session-preferred approach, because the session variable may have changed.

Thanks for any comment,


Server farms are one reason, but with cookie-based session store, it's not that big a deal. The other reason that comes to mind is Web crawling. Relying on session state often defeats Web crawlers, although that does not seem like it's relevant to the example you gave. Why can't you make load_id part of the URL using routing?


I'm persisting a 'transitional' object through a few views, spawning descendants from it and then deleting the parent object. In this case, then, it doesn't seem to make sense to publicize a reference to the transitional object in a url because the referenced object will not be persisted indefinitely -- indeed its creation should be silent to the user.


This is, then, a perfect use for session.