我有一个用户模型。用户可以拥有 3 个角色中的 1 个:role1、role2、role3。这由用户模型中的“角色”列表示。每个角色都有一个独特的个人资料。角色 1_profile、角色 2_profile、角色 3_profile。每个 *_profile 都是一个模型。
我如何在 Rails 中表示这个可选关联?
我尝试了两种不同的方式:
class User < ActiveRecord::Base
#FIRST WAY
if current_user.role == 'role1' then has_one :role1_profile end
#SECOND WAY
has_one :role1_profile, :conditions => ['user.role = ?', 'role1']
end
但这不起作用。这样做的正确方法是什么?