如果我有3个型号......
发布,Logo_Category和徽标
和5个表
帖子,徽标,logo_categories,logos_posts和logos_categories_posts
帖子可以包含任意数量的logo_categories中的任意数量的徽标。我已经开始使用HABTM,但我认为我可能在我的架构方面选择了错误的路径。
任何人都知道关联这些模型的最佳方式是什么?
干杯
修改
对不起伙计们,我以为我已经解决了这个问题,但是......
与保罗所建议的一致,我现在将我的联想改为以下内容。
POST.erb
has_and_belongs_to_many :logos
has_many :logo_categories, :through => :logos
LOGO.erb
belongs_to :logo_category
has_and_belongs_to_many :posts
LOGO_CATEGORY.erb
has_many :logos
has_and_belongs_to_many :posts
我的桌子现在......
帖子(id),徽标(id),logos_posts(id,logo_id,logo_category_id), logo_categories(id)
我的帖子_form加载正常,所有徽标和logo_categories都加载了正确的值,并且正确检查/取消选中(编辑帖子时)。
我可以检查新徽标或取消选中现有徽标并记录正常。但是,如果我更改了logo_category,我会收到以下错误!
无法修改关联'Post#logo_categories',因为它会去 通过一个以上的其他协会。
有什么想法吗?
答案 0 :(得分:1)
对于你的表:
[posts] 1--n [post_logos] n--1 [logo] n--1 [logo_category]
在ruby中,每个Post对象都可以有一个数组或徽标对象列表。每个Logo对象组成一个Logo_Category对象(具有一个Logo_Category成员或变量)。