全栈工程师成长记

编程重新定义人生

有红色错误讯息并不是坏事 8/9日记

Objective
完成:JDstore Story4订单系统

Reflective
情绪:相当不错
低点:貌似没有

Interpretive
学到:
1.好看的图+好看的背景瞬间提升页面效果。
2.订单ID采用token防止订单数据泄露。
3.用ruby就是为了说人话,所以尽量不要在代码里使用缩写。

领悟:有红色的错误讯息是才是好事。
story4的前半部分有解答,但解答里面有两处坑,第一个是order的table里少了user_id栏位,运行的时候会报错,这时候自己migration增加一个column就好了。
但是第二个坑就有点坑了,因为页面不会报错。原本的设计是使用product_lists这个table来生成商品讯息快照,在订单结账之后,要显示出product_name和product_price这两个数据,然而在订单结账完成的页面,这两个讯息却没有按照预期出现。
排查的方式是在view的<td>元素里加入不需要经过ruby语句的字符,结果这些字符也是不能显示,这意味着在

标签之后的@orders.each并没有读取到任何数据。最后在同学的指点之下才解决的这个问题:
1.因为在product_lists table里少了product_id栏位,当订单生成的时候,它无法读取到商品信息,自然也就不能据此生成商品的历史快照。解决的办法就是再migration增加相应栏位。
2.生成的product_lists没有关联relationship,所以要在它的model里面增加一个belongs_to :order。
第二个坑在于页面没有报错,反而无从下手,因此有红色讯息才是好事。当然要反思的自己在跟着答案做的时候没有理顺这个关系,如果自己能够在敲代码的过程里发现问题,也就不用有后面的debug过程了。

Decisional
形容:中午给网站页面修改样式,这种折腾的感觉很好。设计哥自嘲我们是“全占”工程师,什么都给占了。
努力:完成story3和story4额外作业。