我试图在 Rails 3 has-and-belongs-to-many 关联(HABTM)中近似多态关系。
交集表(user_favorites)有这些字段:user_id, favorite_id, favorite_class
在 User 类中,我定义了关系:
has_and_belongs_to_many :favorite_users, :class_name => "User", :join_table => "user_favorites", :association_foreign_key => "favorite_id", :foreign_key => "user_id", :conditions => "user_favorites.favorite_class='User'"
对于检索数据,这按预期工作。不幸的是,这个定义不会添加我需要的 favourite_class' 值(在这种情况下是'User')。
有没有办法,也许使用 Arel,在保存记录之前将 favorite_class 字段设置为所需的值?