Ruby on Rails多态关联

5 ruby-on-rails

这是我正在努力实现的目标:我有一个用户表,每个用户可以是十几种类型中的任何一种:演员,舞者,导演......这是在注册后确定的.每种类型的用户都可以拥有任意数量的配置文件.例如.演员可以拥有任意数量的actor_profiles,舞者可以拥有任意数量的dancer_profiles,......

问题是如何将配置文件与用户链接.一个显而易见的解决方案是为每个配置文件类型创建一个aditional表,这样我就可以在User中使用多态的belongs_to,然后在每个配置文件中使用一个简单的belongs_to,但这似乎不是最佳的.一个可以说是更好的方法是告诉rails用户使用类型为actor,这样user.profiles就可以自然地工作,而不会有任何混乱.rails是否支持这种行为,还是有比前一种方法更好的东西?谢谢.

pjb*_*jb3 1

定义子类中的关系:

class User < ActiveRecord::Base
end

class Actor < User
  has_many :profiles, :class_name => "ActorProfile"
end

class Dancer < User
  has_many :profiles, :class_name => "DancerProfile"
end
Run Code Online (Sandbox Code Playgroud)