在学习”Agile_web_development_with_rails”的时候,发现进行到”Add to cart”哪一部报错:
You have a nil object when you didn’t expect it!
The error occured while evaluating nil.items
也就是说我的”Cart.item”是一个空值…百思不得其解。通过Google,在Railscn上找到了答案。
把代码顺序改一下,private不是修饰一个方法,它跟c++差不多,它后面的方法都被声明为private了,所以你的add_to_cart也是private的。
rails中找不到public的action方法时,就会直接渲染rhtml文件,所以你这个方法根本没调用。
有人和我遇到了同样的问题,把Private的代码调到最后,再刷新没有这样的问题了。
这个故事告诉我们,看教科书除了要看的认真之外,还要学会动脑筋。不过不知道是不是因为我的是Beta版的原因。谁有Final版的第二版Agile_web_development_with_rails,想借来看看,听说中间的改动还是有一些的。
Technorati Tags: ror, ruby on rails, rails, study