我已经使用连接表(hosts
)设置了我的第一个HABTM表(owners
和hosts_owners
)。我的测试似乎工作正常,网页也是如此。
所以,我的下一个问题是如何插入新数据及其各自的关系(即,连接表信息)。由于我预计会有两种主要方式来插入新数据:
那么,对于上述每一项,还有什么是“轨道”方式确保每次添加主机时至少还有一个所有者? (反之亦然。)我发现的所有书籍和文章似乎都停留在创建表格和模型的位置。
答案 0 :(得分:0)
使用validation callback。它类似于数据库触发器,但属于您的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