has_many :通过关联混淆
我是 ruby on Rails 的新手,我一直被各种关联所困扰。
我想开发一个网络应用程序,成员可以在其中创建联系人。联系人可以有一个或多个类别(面包师/演员/开发人员/任何东西)。
由此,我知道我至少需要三个模型:成员、联系人和类别。 我还创建了模型categories_contacts。
这是我的模特协会:
class Member < ActiveRecord::Base
has_many :contacts
end
class Contact < ActiveRecord::Base
belongs_to :member
has_many :categories_contacts
has_many :categories, :through => :categories_contacts
end
class Category < ActiveRecord::Base
has_many :categories_contacts
has_many :contacts, :through => :categories_contacts
end
class CategoriesContacts < ActiveRecord::Base
belongs_to :contact
belongs_to :category
end
可以吗?
然后,我想按类别获取所有联系人。
示例:
类别:演员、导演
联系人 1:姓名(约翰)、类别(演员、导演)
联系人 2:姓名(扎克)、类别(演员)
联系人 3:姓名(Luck)、类别(导演)
如果我按演员排序,我会得到
类别:演员 =>
联系人 1:姓名(约翰)
联系人 2:姓名(扎克)
但我不知道如何在控制器中获取所有联系人。 我尝试了一些东西,但没有任何效果。
谢谢你的帮助。
I'm new to ruby on rails and i'm stuck with associations.
I want to develop a web app where a member can create a contact. A contact can have one or more categories (Baker / Actor / Developer / anything).
From that, I know I need at least three models : member, contact and categories.
I also created the model categories_contacts.
Here are my models associations :
class Member < ActiveRecord::Base
has_many :contacts
end
class Contact < ActiveRecord::Base
belongs_to :member
has_many :categories_contacts
has_many :categories, :through => :categories_contacts
end
class Category < ActiveRecord::Base
has_many :categories_contacts
has_many :contacts, :through => :categories_contacts
end
class CategoriesContacts < ActiveRecord::Base
belongs_to :contact
belongs_to :category
end
Is it ok ?
And then, I would like to get all the contacts by categories.
Example :
Categories : actors, directors
Contact 1 : name(John), categories(actors, directors)
Contact 2 : name(Zack), category(actors)
Contact 3 : name(Luck), category(directors)
If I sort by actors, I would get
Categorie : Actors =>
Contact 1 : name(John)
Contact 2 : name(Zack)
But I don't know how to get all my contacts in my controller.
I tried stuff but nothing works.
Thanks for helping.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你的设置看起来不错。
尝试一下:
如果你想排序:
Your setup seems fine.
Try that:
If you want to sort: