Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 没有相应记录(多对多关系)时如何使验证失败_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

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个或多个提要。所以我想允许创建链接(因为有相应的提要记录):

使用simple
link.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