2013-03-17 79 views
0

这是怎么回事:activerecord发疯了?还是我做错事的时候

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?我没有在任何地方声明...我没有那个地方...错误?我做错了什么? 谢谢

+0

也许检查模型文件的名称。它可能被命名为Prijafe.rb 虽然我真的不认为这会是。并检查你的迁移。 – Zippie 2013-03-17 22:43:36

+0

nope ...它是prijave.rb ...我怀疑一些关于复数化的东西... – user899119 2013-03-17 22:45:47

+1

一个非常不养路的方式,但是如果你使用Linux,去你应用的根目录并写下:'grep -r“ prijafe“或'grep -r”Prijafe“。”这应该会在你名字发生的地方写下你的名字。不要忘记在最后的点 – Zippie 2013-03-17 22:47:52

回答

2

活动记录使用活动的支持变形器来确定班级名称应该是复数形式。这不是万无一失的,特别是当这个词不是英语时。

您可以添加变形器规则来教导您想要使用的复数/单数形式(在初始化器中应该有一个示例文件来演示如何执行此操作),也可以将:class_name选项指定为has_many,以便激活记录不必猜测班级名称。

+0

是的...这是问题...谢谢你们所有 – user899119 2013-03-17 22:51:30