关于ruby:rails 4 ActiveRecord :: StatementInvalid

rails 4 ActiveRecord::StatementInvalid

将rails应用程序从rails3.2升级到rails 4.我遇到了问题

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

1
2
3
4
5
6
7
8
9
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

谢谢


在初始化程序中添加此代码,

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

有关更多信息,请查看activerecord-session_store链接