1
所以我在寫有如下型號和關聯的應用程序:驗證祖父母:兩個父母有同一個父母嗎?
class Company < ActiveRecord::Base
has_many :customers, :dependent => :destroy
has_many :goals, :dependent => :destroy
end
class Customer < ActiveRecord::Base
belongs_to :company
has_many :tasks
has_many :goals, through: :tasks
end
class Goal < ActiveRecord::Base
has_many :tasks, :dependent => :destroy
belongs_to :company
has_many :customers, through: :tasks
end
class Task < ActiveRecord::Base
belongs_to :goal
belongs_to :customer
end
現在看來,一個的form_for新任務已經有目標或客戶選擇,另協會選擇是基於過濾集在另一個模型上。理論上,用戶不可能在兩個不同的公司下創建任務,即@ task.goal.company == @ task.customer.company。
但是,驗證來確認只有一個祖父母是好的做法。我理解使用Proc.new可以驗證是否符合某個標準,但我希望它始終驗證,因此這不是我正在尋找的解決方案。
謝謝。
順便說一句,讓我知道,如果模型結構看起來嘲笑或如果我已經做了明確的反對軌道約定。
這很好地工作。爲了防止別人來尋找答案,你顯然需要一個if /除非調用錯誤: '' –
我其實已經在代碼中,向右滾動以查看它。 :) – Veraticus
Doh!所以你做了,對不起= D –