Ruby on rails DataMapper-简单关联,DataObjects::SyntaxError-有什么想法吗?
我使用DataMapper建立了一个非常简单的关系:Ruby on rails DataMapper-简单关联,DataObjects::SyntaxError-有什么想法吗?,ruby-on-rails,ruby,sinatra,datamapper,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 a
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)
有什么想法吗?:) 保存Class B对象时,需要提供a_id(外键)。如果您想使这个列为空,那么add beliens_to:a,:required=>false,现在您的类B如下所示
class B
include DataMapper::Resource
property :id, Serial
belongs_to :a, :required => false
end
然后删除数据库并重建它。您知道是哪列导致了该错误吗?有人试图向表中添加一个新列,该列为
NOT NULL
,并且该表已经有行。对我来说,它是外键DataObjects::SyntaxError:无法添加默认值为NULL的NOT NULL列(代码:1,sql状态:,查询:ALTER table“trade\u orders”添加列“coin\u exchange\u id”整数不为空…
@sannankhalid的答案对我很有用。