我们是否需要ActiveRecord模型中的class_name和foreign_key声明

时间:2013-04-03 19:15:57

标签: ruby-on-rails activerecord

我们是否需要在rails3应用程序的模型类中使用class_name和foreign_key声明。

class User < ActiveRecord:Base
    has_many :user_foos, :class_name => 'UserFoo', :foreign_key => :user_foo_id
end

1 个答案:

答案 0 :(得分:1)

不是,如果表名是user_foos且类名是UserFoo,则不是。你可以这样做:

has_many :user_foos

使用:class_name修饰符,其中类名实际上不是正在使用的关联名称的单数,或者命名空间导致类名错误地解析。并且:foreign_key用于外键列名称使用专门格式的情况(这通常在引用同一个表中的行时发生,或者多个列指向同一父表的不同记录时发生)。