如何在 Rails 中与一个对象关联两次?
我有一个用户模型和一个任务模型。
任务具有用户类型的创建者和用户类型的受让人。
我已经完成了 AddUserIdtoTasks 的迁移以使创建者关系正常工作,但现在我需要再次执行相同的操作来添加受让人,但我已经在使用关键字“user”。我该如何着手建立适当的关系?
一项任务始终只有一个受让人。
我正在使用用户模型的设计。
I've got a Users model and a Tasks model.
A task has a creator, of type user, and an assignee of type user.
I've already done a migration of AddUserIdtoTasks to get the creator relation working, but now I need to do the same thing again to add the assignee, but I'm already using the keyword 'user'. How should I go about building a proper relation.
A task only has one assignee, always.
I'm using devise for the user model.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
或者
belongs_to
,具体取决于您的字段的设置方式。对于像您这样的情况,has_one
和belongs_to
都采用可选的:class_name
参数。Or
belongs_to
, depending on how your fields are set up.has_one
andbelongs_to
both take an optional:class_name
argument for cases just such as yours.在任务模型中创建字段
assignee_id
,然后将其用于关系,如在关系的另一端
抱歉,应该是
:class_name
。更新的 User 类还带有:foreign_key
参数,如果没有它,user.assigned_tasks
将使用:user_id
参数(默认值)连接记录has_many,即“#{class_name}_id”`)。我邀请您阅读我发布的链接,它比我更好地解释了所有这些事情。
来源:http://guides.rubyonrails.org/association_basics.html#detailed-association -参考
Create the field
assignee_id
in your Task model and then use it for the relation as inOn the other side of the relation
Sorry, should be
:class_name
. Updated User class also with a:foreign_key
parameter, without ituser.assigned_tasks
would have joined records using the:user_id
parameter (the default value for has_many, i.e. "#{class_name}_id"`).I invite you to read the link I've posted, it explains better than me all these things.
Source: http://guides.rubyonrails.org/association_basics.html#detailed-association-reference