购物网 二刷第二周进度 5.3 & 5.4

2019-06-14  本文已影响0人  RealAnalysis

5.3

先rails g model, 然后细节去migration里面加, 也是一种方法. 就是看了教程后, 接着自己乱写如下

教程打脸版本


我估摸着, 这个default: 1是每按一次, 就自动添加一的"起始设定", 原来这里就设定了啊...

然后要修改cart model里的代码, 将三张表格关联起来, 因为cart里面只有cart_itmes并没有product的细节,但跟product表格还是有关系要关联起来的, 就要"通过cart_item"来关联了.

嗯, 居然不用改cart的表结构...

定义居然直接在model里面定义去了...

并不是我截图里乱写的那样, 而是要用神秘的ci大哥!!! 这次冷静的看了一遍教程代码

ci = cart_items.build
ci.product = product
ci.quantity = 1
ci.save

认真看看第一行...有所领悟, 这个ci...不是ruby语言来的, 只是这样取名而已吧?! 只是自定义了一个简写而已吧?!! 只是不想一直重复写 cart_item...所以去取名的咩?!! 所以其实我要认真查的反而应该是 "build" 这个才是ruby语言来的吧?!

但是我比较在意的是为什么...ci = cart_items.build 用的是复数的cart_items? 啊...莫非因为cart里面有无限多的cart_items...所以此处不能用单数?!

5.4

一开始就打脸昨天乱写的navbar代码...我想到用link_to do来写, 估计只有这一部分是对的...Orz 昨天手生, 今天再乱写一次, 坐等教程打脸

这脸打的...根本没quantity啥事...Orz

唉...截图里点评的我还是太天真...误解了...人家current_cart压根不是内建的代码来的, 要自己去定义, 且不是我寻思的那样要创建一个cart controller去定义... 人家教程直接杀去"全局controller"定义去了.

总之, 前端view代码先这样写了, 但其实其中的current_cart还没有定义, 它是个controller里的method来的, 而且是个helper_method. 作为helper_method要说明自己的身份后才能在view以及controller两个地方都被调用...

上一篇下一篇

猜你喜欢

热点阅读