原因如下:
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
Prijafes?我没有在任何地方宣布......我没有任何地方...... Bug?我做错了什么吗? 谢谢
答案 0 :(得分:2)
Active Record使用活动支持变形器从复数形式计算出类名应该是什么。这不是万无一失的,特别是当这个词似乎不是英语时。
您可以添加变形器规则来教导您想要使用的复数/单数(初始化程序中应该有一个示例文件,说明如何执行此操作),或者您可以指定has_many的:class_name选项以便激活记录不必猜测班级名称。
答案 1 :(得分:1)
“Prijafe”的复数是“Prijaves”
因此,当你调用a.prijaves时,你会使单位化不变。
这是一个链接:Ruby on Rails: How do you explicitly define plural names and singular names in Rails?