2013-10-22 294 views
2

虽然从rails3.2升级Rails应用程序导轨4.我得到一个问题轨道4的ActiveRecord :: StatementInvalid

ActiveRecord::StatementInvalid in SessionsController#new

Mysql::Error: Field 'session_id' doesn't have a default value: INSERT INTO sessions (created_at , data , updated_at) VALUES (?, ?, ?)

在我的课程表我已经SESSION_ID场,但我不知道该怎么设置默认值。

你能帮我解决这个问题吗?

我add_sessions_table.rb迁移文件:

class AddSessionsTable < ActiveRecord::Migration

def change

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 

end

我sessions_store.rb文件

MyApp::Application.config.session_store :active_record_store

感谢

回答

5

在初始化添加该代码,

ActiveRecord::SessionStore::Session.attr_accessible :data, :session_id

˚F或更多信息结帐activerecord-session_store链接