【发布时间】:2016-06-04 02:09:28
【问题描述】:
在定义关联时传入类而不是字符串是否有任何含义或陷阱?
belongs_to :owner, class_name: User
相对于:
belongs_to :owner, class_name: "User"
【问题讨论】:
标签: ruby-on-rails activerecord associations
在定义关联时传入类而不是字符串是否有任何含义或陷阱?
belongs_to :owner, class_name: User
相对于:
belongs_to :owner, class_name: "User"
【问题讨论】:
标签: ruby-on-rails activerecord associations
该类可能尚未加载,在这种情况下您将获得NameError: uninitialized constant User。
出于这个原因,您应该使用"User",正如选项名称所暗示的那样::class_name,而不是:class。
【讨论】:
:user。添加完整性。
:User 大写u吗?
在极少数情况下,我在使用类 (User) 而不是类名作为字符串 ('User') 时会遇到一些随机错误。我无法通过重新启动应用服务器来重现它们并解决此问题。
它也可以是一个符号。它不能是一个类常量,因为如果你有两个关联的模型,当第一个被加载时,第二个还没有定义,所以这个常量不会被定义,这会报错。
【讨论】: