0

我已经使用连接表 ( )设置了我的第一个 HABTM 表 (hosts和)。我的测试似乎工作正常,网页也是如此。 ownershosts_owners

所以,我的下一个问题是如何插入新数据及其各自的关系(即连接表信息)。因为我预计将有两种主要的插入新数据的方法:

  1. 以编程方式,从其他来源检索内容并保存到表中
  2. 手动,用户将使用网页添加新条目。

那么,对于上述每一项,确保每次添加主机时至少添加一个所有者的“rails”方式是什么?(反之亦然。)我发现的所有书籍和文章似乎都停留在创建表格和模型的地方。

4

1 回答 1

0

使用验证回调。它类似于数据库触发器,但属于您的 Rails 模型。

例如。(不确定这是否有效,必须尝试):

class Host < ActiveRecord::Base
  validates :has_at_least_one_owner?

  def has_at_least_one_owner?
    owners.any?
  end
end 

PS:也许你可以validates_presence_of改用,但不知道它是否适用于HABTM

于 2012-05-23T12:02:35.373 回答