2014-04-24 121 views
-1

如何爲外部定義的許多關聯編寫驗證?我至今寫是這樣的:Rails:驗證關聯數

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有關聯。即使記錄應該是有效的,我也會得到這個代碼的回滾錯誤。

+0

似乎是正確的......把方法'validate_tags'的第一行記錄器,'出版物和模板'的印刷計數,看看他們是否相等。 – Hardik

回答

1

您的代碼看起來是正確的,所以看起來可能沒有正確設置或保存關聯。

你檢查:

  • publicationstemplate都被分配到Document比如你保存過嗎?
  • 回滾錯誤是不是由於不同的原因,如唯一性失敗?
  • 這是實際驗證失敗,而不是另一個?
+0

感謝您的回覆。它絆倒了'不夠'的錯誤信息,這使我想我太早驗證,即'出版物'記錄存在。我將需要驗證'發佈'記錄保存後,這是'文檔'創建時。在這種情況下甚至可能嗎? –

+0

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 – crockeea

+0

@Eric我在他的帖子中看到了三個潛在的問題答案。 – mason