DataMapper - 简单关联,DataObjects :: SyntaxError - 任何想法?

时间:2011-09-06 18:07:30

标签: ruby-on-rails ruby sinatra datamapper

我使用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)

有什么想法吗? :)

1 个答案:

答案 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

然后删除数据库并重建它。