Ruby on rails 没有相应记录(多对多关系)时如何使验证失败
我有两个模型Ruby on rails 没有相应记录(多对多关系)时如何使验证失败,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有两个模型Link和Feed,它们之间有很多关系(有很多:通过LinkFeedjoin模型)。 每个链接应属于1个或多个提要。所以我想允许创建链接(因为有相应的提要记录): 使用simplelink.create创建链接失败!(网址:http://google.com“”,因为它没有相应的提要记录。我该怎么做 编辑: 我添加了以下验证: validate do errors.add(:base, "Must have at least one feed") unless feeds.siz
Link
和Feed
,它们之间有很多关系(有很多:通过LinkFeed
join模型)。
每个链接应属于1个或多个提要。所以我想允许创建链接(因为有相应的提要记录):
使用simplelink.create创建链接失败!(网址:http://google.com“”
,因为它没有相应的提要记录。我该怎么做
编辑:
我添加了以下验证:
validate do
errors.add(:base, "Must have at least one feed") unless feeds.size > 0
end
但现在这两个示例都失败了,出现了以下错误:/尝试将
不得为null
条件添加到外键提要id
class Link
validates :feed_id, :presence => true
...
end
这将使创建的记录不会与提要关联而失败
编辑:
这里有两个关于多对多关系验证的答案。您需要在您的链接类上结合验证:feed\u id的存在和<代码>验证\u关联的确保提要也是有效的对象。那么我需要在链接模型中有提要id吗?嗯,链接与提要相关,对吗?所以我认为链接应该包含对提要的引用。哦,我不知道。那么你有一个
feeds\u links
表了吗?让我们来看看
class Link
validates :feed_id, :presence => true
...
end