`
jack
  • 浏览: 392459 次
  • 来自: 温州
社区版块
存档分类
最新评论

错误的rails错误提示... 真晕

阅读更多
遇到了一个错误的错误提示,真是晕死了.写在这里,给同样可能遇到的同学提个醒

表A为表B的子表
Class A中有一个function read_a

然后我写错了代码
test = B.find(1,:include=>:a)
test.a.read_a


上面的代码是写错了的,可是错误提示是这样的

引用
NoMethodError (undefined method `read_a' for A:Class):


看到这个错误我就傻了,read_a明明有的阿,怎么提示没有
........................

想尽各种办法,问题依旧.但是直接
a = A.find(1)
a.read_a

就没有问题.

read_a的unit test也没错

最后没法子,开始怀疑test不是A class.分别调用了下
test.a.class 和 a.class.

晕,test.a 是Array ..........................

从一开始就让rails的这个错误的错误提示给打懵了.费了差不多一个小时.


分享到:
评论
6 楼 jack 2006-10-15  
cookoo 写道
你是不是把表复数约定关掉了?如果B has_many :a照理说:include => :a和test.a都会出错的。这种问题最好在console里玩一会就明了了。


不过这个错误提示实在是误导性很强.这个错误也是修改出来.

第一次的代码用到是a的数组.第二次.已经是隔了几天的情况下,我在class A中加入了 read_a,然后想在这里使用read_a的返回结果.于是就修改成test.a.read_a了.出现了这个不正确的错误提示...

如果能够直接提示Array没有这个函数,那也就不会被搞晕了.
5 楼 cookoo 2006-10-15  
你是不是把表复数约定关掉了?如果B has_many :a照理说:include => :a和test.a都会出错的。这种问题最好在console里玩一会就明了了。
4 楼 jack 2006-10-15  
alang 写道
态度不认真

对于rails各种规则还在尝试中,难免有错.
3 楼 jack 2006-10-15  
uncutstone 写道
jack 写道


然后我写错了代码
test = B.find(1,:include=>:a)
test.a.read_a


最后没法子,开始怀疑test不是A class.分别调用了下
test.class 和 a.class.

晕,test 是Array ..........................



我怎么觉得你不仅是代码写错了,你的文字中也有很多错误!
test.a 这个写法可以通过语法检查吗? 不是 test.as?
test 是 Array ? 你是不是想说 test.as 是 Array?


抱歉 这个写的随意了点,改正下文字错误.

不过我在B class 写入的是 has_many :a
上面的代码语法是检测的过的.
2 楼 alang 2006-10-15  
态度不认真
1 楼 uncutstone 2006-10-15  
jack 写道


然后我写错了代码
test = B.find(1,:include=>:a)
test.a.read_a


最后没法子,开始怀疑test不是A class.分别调用了下
test.class 和 a.class.

晕,test 是Array ..........................



我怎么觉得你不仅是代码写错了,你的文字中也有很多错误!
test.a 这个写法可以通过语法检查吗? 不是 test.as?
test 是 Array ? 你是不是想说 test.as 是 Array?

相关推荐

Global site tag (gtag.js) - Google Analytics