【问题标题】:Rails: validate number of associationsRails:验证关联的数量
【发布时间】:2014-06-09 03:16:23
【问题描述】:

您如何为许多外部定义的关联编写验证?到目前为止,我已经写过这样的东西:

class Document
  validate :publication_count

  private

  def publication_count
    if publications.count > template.component_count
      errors.add(:articles, 'too many')
    elsif publications.count < template.component_count
      errors.add(:articles, 'not enough')
    end
  end

publicationstemplate 都是关联。即使记录应该是有效的,我也会收到此代码的回滚错误。

【问题讨论】:

  • 似乎正确...将记录器放在方法validate_tags的第一行,打印publicationstemplate的计数,看看它们是否相等。

标签: ruby-on-rails ruby ruby-on-rails-3 has-many-through


【解决方案1】:

您的代码看起来是正确的,因此似乎关联设置或保存不正确。

你检查了吗:

  • publicationstemplate 在保存之前都分配给 Document 实例?
  • 回滚错误不是出于其他原因,例如唯一性失败?
  • 这是失败的实际验证,而不是另一个验证?

【讨论】:

  • 感谢您的回复。它触发了not enough 错误消息,这让我觉得我正在尝试验证太早,即publications 记录存在之前。我需要在保存publications 记录之后验证,即创建Document。在这种情况下甚至可能吗?
  • 这并没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
  • @Eric 我在他的帖子中看到了这个问题的三个潜在答案。
  • 你没有回答任何一个。
  • @Eric:IMO,问题(引自 OP)是“您如何为许多外部定义的关联编写验证?”。我用“您的代码似乎正确,因此似乎没有正确设置或保存关联”回答了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-24
  • 2011-08-07
  • 1970-01-01
  • 2011-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多