Datamapper' belongs_to /有n'忽略:required =>假

时间:2011-11-27 22:53:47

标签: datamapper has-many merb

我最近继承了一个使用datamapper作为其orm的旧的merb应用程序。我对DM并不太熟悉,所以我可能会忽略一些明显的东西。我在两个模型之间有一个简单的关系,这不是必需的,如下所示:

class User
  include DataMapper::Resource

  property :id,      Serial
  property :name,    String, :length => 100, :nullable => false

  belongs_to :upload, :required => false
end

class Upload
  include DataMapper::Resource

  property :id,           Serial
  property :filename,     String

  has n, :users
end

但由于某种原因,它不会让我在没有附加上传的情况下保存用户:

> u = User.create :name => 'foo'
 => #<User @id=nil @name=nil @upload_id=nil>
> s.errors.full_messages
 => ["Upload must not be blank"]

为了确保我尝试设置:required =&gt;在“有n”方面也是假的,但当然没有区别。

所有这些都在merb 1.0.13和datamapper 0.10.1


编辑:下面的答案是正确的,但我确实找到了解决方法,你可以添加:nullable =&gt;为了使这项工作成真,如下:

belongs_to :upload, :required => false, :nullable => true

1 个答案:

答案 0 :(得分:2)

旧DM中曾经存在导致此行为的错误。我强烈建议将此应用程序移植到最近的Rails&amp; DM。