datamapperでassociationがあることを保証したい

class Post
  include DataMapper::Resource
  property :title
  property :body

  belongs_to :author
end

class Author
  include DataMapper::Resource
  property :name
  property :addr

  has n, :posts
end

若干おかしな例だけど、Author.allで取得する時にpostを持たないAuthorを入れないためにはdm-validationsを使えばいいみたい。

class Author
  include DataMapper::Resource
  property :name
  property :addr

  has n, :posts

  validates_present :posts
end

(追記)

dm-validationをrequireするとauto-validationが効くので、saveするときに注意しないといけない

if post.save 
  # success
else 
  # failed
  post.errors.each do |e|
    e.puts
  end
end