我有两个模型,用户和主题,我目前正加入一个themes_users表中的HABTM关联。基本上,在用户创建新主题后,其他用户可以选择供自己使用。
但是,只有主题的原始创建者才能够编辑它。所以,我需要有一些其他类型的关联来处理这种关系,比如主题中的created_by_id字段。
通过这种方式,用户模型充当两个不同的角色:它们可以是主题的实现者和/或主题的所有者。实现者关系由themes_users连接表处理;问题是:处理这种二级关联的正确方法是什么?我是否需要使用户具有多态性,然后将created_by_id引用设为“所有者”?或者有更容易的事情吗?
非常感谢你的帮助!
答案 0 :(得分: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