0

这是这样的:

class Prijave < ActiveRecord::Base
   belongs_to :timovi
   belongs_to :liga
end

class Timovi < ActiveRecord::Base
    belongs_to :sportovi
    has_many :timoviusers, :dependent => :destroy
    has_many :prijaves, :dependent => :destroy
end

当我试图删除一个 Timovi 时,我得到:未初始化的常量 Timovi::Prijafe

另外,在控制台

1.9.3p194 :001 > a=Timovi.find(6)
  Timovi Load (0.2ms)  SELECT `timovis`.* FROM `timovis` WHERE `timovis`.`id` = 6 LIMIT 1
1.9.3p194 :007 > a.prijaves
NameError: uninitialized constant Timovi::Prijafe

普里哈菲斯?我没有在任何地方声明...我在任何地方都没有...错误?我做错了什么吗?谢谢

4

2 回答 2

2

Active Record 使用主动支持变形器从复数形式中计算出类名应该是什么。这不是万无一失的,尤其是当这个词看起来不是英语时。

您可以添加变形器规则来教 rails 您要使用的复数/单数(在初始化程序中应该有一个示例文件显示如何执行此操作),或者您可以将 :class_name 选项指定给 has_many 以便活动记录不会必须猜测类名。

于 2013-03-17T22:49:46.510 回答
1

“Prijafe”的复数形式是“Prijaves”

因此,当您调用 a.prijaves 时,您会得到未初始化的常量。

这是一个链接:Ruby on Rails:如何在 Rails 中明确定义复数名称和单数名称?

于 2013-03-17T22:49:57.487 回答