Using MySQL-Based Storage in Ruby Applications
Problem
You want to use session storage for Ruby scripts.
Solution
Use the CGI::Session
class
interface. By default, it uses temporary files for backing store, but
you can configure it to use MySQL instead.
Discussion
The CGI::Session
class
manages session storage. It identifies sessions by means of cookies,
which it adds transparently to the responses sent to the client.
CGI::Session
allows you to supply a
storage-management class to be used in place of the default manager
that uses temporary files. We’ll use the mysql-session
package, which is based on the
Ruby DBI interface and stores session records using MySQL. mysql-session
is available from the Ruby
Application Archive. See Appendix A for
information about obtaining and installing it.
To use mysql-session
in a
script, you need to access these modules:
require "cgi" require "cgi/session" require "mysqlstore"
To create a session, first create a CGI
object . Then invoke CGI::Session.new
, which takes several
arguments. The first is a CGI
object associated with the script. (This object must exist before you
can open the session.) Other arguments provide information about the
session itself. Those following are relevant no matter which storage
manager you use:
-
session_key
The session key that the session manager uses as the name of the cookie to be sent to the client. The default key value is
_session_key
; we will useRUBYSESSID
.-
new_session
This argument should be true to force a new session ...
Get MySQL Cookbook, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.