我有以下型号:
User
- type
Account
- user_id
Aide
- user_id
Provider
- user_id
用户可以拥有['帐户',' aide''提供商'],并且它可以有多种类型但不应该有与之相关的多种类型。因此,类型' aide'的用户有很多助手,但它不应该有任何帐户或提供者。
在Rails中是否有一种既定的方法来处理这种类型的关联?它在传统定义中并不是多态的 - 父母的类型定义了孩子的类型更多。
答案 0 :(得分:1)
然后您可以在User模型类中添加验证方法,如下所示:
class User < ActiveRecord::Base # your User model
validate :pick_a_name
private
def pick_a_name
# check presence of associations that aren't of the users's type
associations = %w{accounts aides providers} # use a constant
associations.each do |a|
if (a != self.type.pluralize) && send(a).present?
# if such associations are present, add errors here
end
end
end
end
在其他课程中:
class Account # your account model
validate :pick_a_name
private
def pick_a_name
if (user.type != 'account')
# add errors here
end
end
end