首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >:类=>“此处插入随机类名”

:类=>“此处插入随机类名”
EN

Stack Overflow用户
提问于 2014-04-07 03:05:51
回答 2查看 44关注 0票数 0

做这样的事有什么意义?

代码语言:javascript
运行
复制
class User 
  has_many :students, :class_name => "CoachStudent", foreign_key: "coach_user_id"
 end 

class CoachStudent 
 belongs_to :student, :class_name => "User", :foreign_key => "student_user_id"
end 

为什么?

为什么用户没有很多学生,而学生属于用户呢?这是传统的方式,对吗?

编辑

我的困惑源于根本没有学生课的事实。如上面的代码所示。因此,这个问题。

ps。请随意重新命名我的帖子,因为我对如何命名它感到困惑。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-07 03:22:44

:class_name为您提供了任意命名关联的灵活性,并使代码更具可读性和可重用性。:foreign_key属性再次允许您决定要作为外键的字段。

如果你按照惯例行事:

代码语言:javascript
运行
复制
class User
  has_many :students
end

class CoachStudent
  belongs_to :student
end

默认情况下,ActiveRecord将使用_id作为外键,并尝试为关联找到类Student。显然,在您的例子中,您希望使用:students作为您的关联名称,并将其映射到CoachStudent。您可以通过:class_name约定获得这种灵活性。

票数 0
EN

Stack Overflow用户

发布于 2014-04-07 03:10:27

它给了代码更多的意义。

我不知道CoachStudent在你的例子中是什么,但是想想一个博客例子,一个人在写博客文章:

代码语言:javascript
运行
复制
class BlogPost < ActiveRecord::Base
  belongs_to :author, class: 'User'
end

是的,从技术上讲,你可以说一篇文章有一个用户,但是如果你说一篇文章有一个作者,它就更有意义(也更有意义)。

另外,如果一篇文章与用户有多个联系--例如,作者、审查员和审批人?您需要为这些关联使用不同的名称来区分它们。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22902955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档