1

我有两个模型,用户和主题,我目前正在主题用户表中加入 HABTM 关联。基本上,在用户创建新主题后,其他用户可以选择它以供自己使用。

但是,只有主题的原始创建者才能对其进行编辑。所以,我需要有一些其他类型的关联来处理这种关系,比如主题中的 created_by_id 字段。

通过这种方式,用户模型充当两个不同的角色:他们可以是主题的实现者和/或主题的所有者。实现者关系由themes_users连接表处理;问题是:处理这种二级关联的正确方法是什么?我是否需要让用户多态,然后让 created_by_id 引用成为“所有者”?或者有什么更简单的吗?

非常感谢你的帮助!

4

1 回答 1

1

我相信你应该添加以下关联

class User < ApplicationController
   # a user can create many themes
   has_many :themes_created, :foreign_key => :creator_id, :class_name => "Theme"
end

class Theme < ApplicationController
   # add a creator_id column in your themes table
   belongs_to :creator, :class_name => "User"
end

这样你就可以得到themes一些人@user通过

@user.themes_created
于 2010-06-11T20:25:52.180 回答