我使用DataMapper建立了一个非常简单的关系:
class A
include DataMapper::Resource
property :id, Serial
has n, :b
end
class B
include DataMapper::Resource
property :id, Serial
belongs_to :a
end
我收到此错误:
dm-do-adapter.rb:70:in `execute_non_query': Cannot add a
NOT NULL column with default value NULL (DataObjects::SyntaxError)
有什么想法吗? :)
答案 0 :(得分:4)
您需要在保存B类对象时提供a_id(这是一个外键)。如果你想创建这个NULL列,那么添加belongs_to:a,:required =>是的,现在你的B级看起来像。
class B
include DataMapper::Resource
property :id, Serial
belongs_to :a, :required => false
end
然后删除数据库并重建它。