2012-12-28 52 views
1

我有了顯示錯誤`scope`

attr_accessible :name, :activity 

validates :name, uniqueness: { scope: :activity } 

它的工作原理,它不允許重複條目的創建模式。但是對於simple_form,它僅在:name字段中顯示錯誤。我希望它在兩個字段都有錯誤,表示這個「名稱」和「活動」組合已經被使用。

我想我需要創建一個自定義驗證方法,但我希望有一個更優雅的解決方案,我迄今爲止忽略了。

有沒有辦法在這兩個字段上顯示錯誤?

回答

0

我落得這樣做

validates :name, uniqueness: { scope: :activity, message: 'This name and activity combination has already been taken.' } 

如果我要擁有它同時驗證,穿上這兩個領域的消息但我還沒有決定,但相反的:activity領域將是相同的。

1

您可以添加其他驗證:活動,以便將被標記爲複製,以及:

validates :activity, uniqueness: { scope: :name } 

我不知道這是最完美的解決方案,但它會饒了你自定義的驗證方法。

+0

的確如此。我嘗試了兩種方法,但我並沒有考慮將它們都放在一起。但我仍然需要表明它們以某種方式連接。如果沒有人提出任何問題,我會檢查這個答案。 – maneKozaroo