Ruby on Rails:多态多态关联

时间:2012-05-07 16:49:47

标签: ruby-on-rails database project-management polymorphism polymorphic-associations

是否可能有多重多态关联? 我解释得更好:

  1. 我有不同类型的用户:simple_user,social,collaborator,admin,它们在数据库字段和应用程序授权方面有所不同。
  2. 每位用户都可以请求
  3. 请求可以是不同的服务:traduction,consultance等
  4. 我正考虑为每项服务提供一张桌子:Traduction,咨询,其中:

    has_one :request, :as => requestable
    

    然后只有一个表请求:

    belongs_to :requestable, :polymorphic => true
    

    但是可以向用户表添加另一个多态关联 吗? 我怎样才能更好地处理这种关系?感谢您的任何建议

1 个答案:

答案 0 :(得分:2)

是的,您可以定义多个多态关联。他们都会使用自己的数据库列。

user_type表格中创建两列user_idrequests并定义此关联:

belongs_to :user, :polymorphic => true

然后,您应该可以将Collaborator分配给Request

Request.create!(:user => Collaborator.first)