我有这个结构
class Organization
has_many :clients
end
class Client
belongs_to :organization
has_many :contacts
end
class Contact
belongs_to :client
belongs_to :organization
end
如何确保将客户分配给联系人时,他是特定组织的子女,而不允许其他组织的客户分配?
搜索时我发现可以添加scope
参数,但在分配client_id
时似乎无法评估。
更新
以下是Rails文档中的一个示例:
validates :name, uniqueness: { scope: :year,message: "should happen once per year" }
我正在寻找像"如果设置了客户端,它必须在Organization.clients"
答案 0 :(得分:1)
class Contact
#...
validate :client_organization
def client_organization
unless client.nil?
unless organization == client.organization
errors.add(:organization, "can't be different for client.")
end
end
end
end