ruby-on-rails – HABTM 2表2种不同的关系
发布时间:2020-12-17 01:44:00 所属栏目:百科 来源:网络整理
导读:我有一个服务类型表,其中包含几十个服务的ID和名称. 我有一个Projects表,必须有一个Proposed Services列表和一个Accepted Services列表. 我知道我会在两侧使用HABTM,其间有一个project_service_types表. 当我在同一个表之间有两个不同的关系时,我无法弄清楚
我有一个服务类型表,其中包含几十个服务的ID和名称.
我有一个Projects表,必须有一个Proposed Services列表和一个Accepted Services列表. 我知道我会在两侧使用HABTM,其间有一个project_service_types表. 当我在同一个表之间有两个不同的关系时,我无法弄清楚要做什么.我怀疑它使用:join_table和:associated_forign_key,但我不能让它在我的应用程序中工作. 谢谢. 解决方法
虽然你可以用habtm来解决这个问题,但你所说的是has_many:through的用例.您想要附加一些信息以及关系.为此,您需要创建一个表示关系的连接模型.
最后,您可以将服务提案视为域中的一流“事物”.接受服务后,您只需更改状态即可.这也节省了连接. 移民 create_table :project_services do |t| t.references :project t.references :service_type t.string :status end 楷模 class ProjectService < ActiveRecord::Base belongs_to :project belongs_to :service end class Project < ActiveRecord::Base has_many :project_services has_many :accepted_services,:through => :project_services,:conditions => { :status => 'accepted' } has_many :proposed_services,:through => :proposed_services,:conditions => { :status => 'proposed' } end class Service < ActiveRecord::Base has_many :project_services has_many :accepted_projects,:conditions => { :status => 'accepted' } has_many :proposed_projects,:conditions => { :status => 'proposed' } end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |