 <p>You should use cookies</p> <pre><code>cookies[:&lt;name&gt;] = { :value =&gt; "&lt;value&gt;", :expires =&gt; &lt;time of expiry&gt;} </code></pre> <p>The first reason for this is that storing the data in session means that the data is stored in yuor server's memory. Eventually, with you keeping that data in memory for such large amounts of time, you memory will get full</p> <p>The second reason is that if you need to restart your server (or some something that requires the apache/iis/ror/web hosting service to be restarted) session data will be cleared. Session is typically for short term data storage.</p> <p>Now there are such things as SqlSessionStores (eg <a href="http://railsexpress.de/blog/articles/2005/12/19/roll-your-own-sql-session-store" rel="nofollow noreferrer">http://railsexpress.de/blog/articles/2005/12/19/roll-your-own-sql-session-store</a>) so you could store your session data for much longer, without the limitation of server memory filling up and without the limitation of lossing all session data if you restart your server. However be warned that these are still designed for short term storage, I wouldn't use them for long term storage.</p> <p>Cookie - Kept until user clears cookies in browser, or until cookie expires; long term non-critical storage</p> <p>Session - Kept until user clears cookies in browser (cookies are used to track a user and identify their session), or web service/server restarts, or session expires; short term non-critical storage</p> <p>SqlSession - Kept until user clears cookies in browser, or session expires; short term non-critical storage</p>