在Rails 3中使用字符串或符号定义:class_name

时间:2011-06-05 17:24:05

标签: ruby-on-rails string associations symbols

如果我有Invitation模型和User模型,Invitation模型的requester_id列为class Invitation < ActiveRecord::Base belongs_to :requester, :class_name => "User" end ,为什么会这样做,

class Invitation < ActiveRecord::Base
  belongs_to :requester, :class_name => :user
end

这不起作用?

{{1}}

通常,我何时使用符号,何时在Rails 3中使用字符串?

2 个答案:

答案 0 :(得分:2)

其中一个

您肯定需要:User,而不是:user.

核心Ruby Symbol定义了#to_sString定义了#to_sym,,因此在任何Ruby上下文中,您可能经常将其替换为另一个。

我可能会说:当有疑问时,follow the Rails3 API documentation.除了它没有说,尽管这个例子使用了一个字符串。但在这种情况下,它可以正常使用符号。

答案 1 :(得分:0)

请记住,它区分大小写。因此:User 可以工作。在任何情况下,我都会使用一个字符串,就像它在文档中所说的那样:)