开发者

rails session_store odd behaviour

I am using active_record_store in a rails application which is storing this in session session[:email] = "email@address.com"

n开发者_C百科ow this works fine in the action. but when this action gets over and is redirected to another page, which also accesses the same session[:email] I get an error

undefined method `eq' for nil:NilClass

this should probably mean that i am trying to compare values at some place i am not allowed to. but i cannot see anything like that in the code.


This looks like an old question, but I was just having the same problem and had to figure it out on my own, and thought I would post the solution up here for anyone else that runs into this. It's not very well documented, but to get this to work you have to add:

config.action_dispatch.session_store = :active_record_store

to application.rb, and

Application.config.session_store :active_record_store

to config/initializers/session_store.rb. Then, you have to do:

rake db:sessions:create

and:

rake db:migrate

Then, you have to restart your rails server. I think it was the db:sessions:create step that tripped up the original poster. Not only does that database table have to be laid out the way rails is expecting (that is, with an 'id' column, which is the actual cause of this error, I think), but also the current session has to have a valid ID. Hence the need to create the table and re-start the server, or potentially empty the table if it exists.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜