Greg Donald
2009-Jan-28 21:24 UTC
:active_record_store + :table_name_with_underscore session issues
Today I created a new Rails 2.2.2 project.
I''m using Oracle and activerecord-oracle-adapter (1.0.0.9250).
I''m using ActiveRecord::Base.primary_key_prefix_type
:table_name_with_underscore, which is a spec for the project that I
cannot change.
I ran `rake db:sessions:create` and it created a new migration that
looks like this:
class CreateSessions < ActiveRecord::Migration
def self.up
create_table :sessions do |t|
t.string :session_id, :null => false
t.text :data
t.timestamps
end
add_index :sessions, :session_id
add_index :sessions, :updated_at
end
def self.down
drop_table :sessions
end
end
This does not work. I get the error:
ActionController::InvalidAuthenticityToken on any forms that are
posted.
When I look in the sessions table the hashed data in the `data` field
looks normal, but there are integers being stored in the session_id
field, not the 32 character hashes I would expect. And every page
reload creates a new session, the integer stored in the session_id
field is incremented by one. I''m thinking session data is being
written, but then cannot be retrieved.
I''ve tried a number of things I found searching, such as:
CGI::Session::ActiveRecordStore::Session.set_primary_key
''session_id''
none of which help. Any idea what I need to do?
I have other, older Rails apps using active_record_store sessions that
work just fine, but this is my first one on Rails 2.2.2 and so far
it''s a no-go.
--
Greg Donald
http://destiney.com/
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Tim
2009-Jan-29 00:26 UTC
Re: :active_record_store + :table_name_with_underscore session issues
You may want to browse: http://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ClassMethods.html and http://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection.html Good luck! Tim On Jan 28, 1:24 pm, Greg Donald <gdon...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Today I created a new Rails 2.2.2 project. > > I''m using Oracle and activerecord-oracle-adapter (1.0.0.9250). > > I''m using ActiveRecord::Base.primary_key_prefix_type > :table_name_with_underscore, which is a spec for the project that I > cannot change. > > I ran `rake db:sessions:create` and it created a new migration that > looks like this: > > class CreateSessions < ActiveRecord::Migration > > def self.up > create_table :sessions do |t| > t.string :session_id, :null => false > t.text :data > t.timestamps > end > add_index :sessions, :session_id > add_index :sessions, :updated_at > end > > def self.down > drop_table :sessions > end > > end > > This does not work. I get the error: > ActionController::InvalidAuthenticityToken on any forms that are > posted. > > When I look in the sessions table the hashed data in the `data` field > looks normal, but there are integers being stored in the session_id > field, not the 32 character hashes I would expect. And every page > reload creates a new session, the integer stored in the session_id > field is incremented by one. I''m thinking session data is being > written, but then cannot be retrieved. > > I''ve tried a number of things I found searching, such as: > > CGI::Session::ActiveRecordStore::Session.set_primary_key ''session_id'' > > none of which help. Any idea what I need to do? > > I have other, older Rails apps using active_record_store sessions that > work just fine, but this is my first one on Rails 2.2.2 and so far > it''s a no-go. > > -- > Greg Donaldhttp://destiney.com/--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Frederick Cheung
2009-Jan-29 00:35 UTC
Re: :active_record_store + :table_name_with_underscore session issues
On 29 Jan 2009, at 00:26, Tim wrote:>> >> When I look in the sessions table the hashed data in the `data` field >> looks normal, but there are integers being stored in the session_id >> field, not the 32 character hashes I would expect. And every page >> reload creates a new session, the integer stored in the session_id >> field is incremented by one. I''m thinking session data is being >> written, but then cannot be retrieved. >>Hmm. The problem you have is that by setting primary key to :table_name_with_underscore rails wants to use session_id as the primary key to the sessions table. it also wants to use session_id for the session identifier and for whatever reason, the primary key ''wins''. You could fiddle the SessionClass for it to store the session identifier in a different column (or CGI::Session::ActiveRecordStore::Session.set_primary_key ''id'' would probably do the trick if you can get away with it. Fred>> I''ve tried a number of things I found searching, such as: >> >> CGI::Session::ActiveRecordStore::Session.set_primary_key ''session_id'' >> >> none of which help. Any idea what I need to do? >> >> I have other, older Rails apps using active_record_store sessions >> that >> work just fine, but this is my first one on Rails 2.2.2 and so far >> it''s a no-go. >> >> -- >> Greg Donaldhttp://destiney.com/ > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Greg Donald
2009-Jan-29 19:07 UTC
Re: :active_record_store + :table_name_with_underscore session issues
On Wed, Jan 28, 2009 at 6:35 PM, Frederick Cheung <frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Hmm. The problem you have is that by setting primary key > to :table_name_with_underscore rails wants to use session_id as the > primary key to the sessions table. it also wants to use session_id for > the session identifier and for whatever reason, the primary key ''wins''. > You could fiddle the SessionClass for it to store the session > identifier in a different column (or > CGI::Session::ActiveRecordStore::Session.set_primary_key ''id'' would > probably do the trick if you can get away with it.I appreciate the reply but I''m not gonna bother trying to figure it out, I switched to memory sessions this morning and it works with no problems. I''m not really understanding how I can have another app on Rails 2.0.2 that has this exact same setup and it works fine. Something changed from 2.0.2 -> 2.2.2 which obviously didn''t break any Rails core tests.. I mean, if anyone is even testing on anything besides MySQL. To use Rails in medical research means Oracle most of the time. -- Greg Donald http://destiney.com/ --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---