购物网 8.2

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

对『购物明细』的思考

需要"结账时的当下资料信息", 类似"截图"一般的记录... 这是业务相关的需求. 貌似要创建全新的model去记录"现在此刻"的相关资料. 我就开始琢磨, 这跟order model区别何在? 是否直接在order model里面加栏位, 不用新建一个新表格?

而且这起到"截图"一般作用的数据, 要去哪里抓取呢? 因为product会下架之类的, 想用product_id来定位是无法防止未来的数据变动...莫非...新model的功能不是"抓取数据", 而是"存储当下数据"? 不过就算猜对...要如何新建一个"截图般的功能"的model...

首先 新建一个model叫ProductList的

对比一下发现, 不用user_id而是order_id好像更对哦...都是唯一的编码, 但是不同之处是, user_id旗下估计会有很多很多的order_id啊喂! 人家不一定只买一次啊喂!!!

相较于product_id, 用的是不会随便改动的product_name哦. 然后price...都有, 但我没写详细. 我好奇product_priceproduct.price应该有不同吧? 前者是个"自己命名"的固定的"当下的价格"?

最后, 我多写了一个total price, 其实认真想想, 有price也有quantity...total price不就有了吗? 我又不是第一次发现model的创建很符合MECE原则了...就是 Mutually Exclusive, Collectively Exhaustive. 底层原则在各个领域都适用啊...

最后...每次创建一个model...请去关联...我已经说累了...

建立购买明细缓存

有这招!!! 果然是要"存储数据"而不是"现抓数据" 我的推理能力还是可以的! 嘚瑟死我了哈哈哈 以至于都想起来Nic助教在之前的周末meetup给我解答时, 夸我理解力超强, 表示他担心我分分钟要超越他哈哈哈哈

虽然嘚瑟...但是缓存要写哪里...seed吗? 缓存代码又有何不同?

居然直接写controller里面哦! 哦吼! 居然是table body部分常常用的手法!!! 这样写居然就能把目前的"当下"信息存进去product_list 然后呢? 这些数据以后变动, 被存到produc_list的数据也不会被影响不会变咩? 如果是那样就太神奇了!


里面的current_cart.cart_items.each要理解成 『'本购物车'里的每个'购物项目', which include 商品id以及其商品数量, 每个cart_item都做如下的处理』

就是把购物车里的每个单品相关数据的"当前数据"做成缓存数据, 存入product_list旗下.

新建了model还去定义了controller, 最后当然是view代码了

要写啥前端呢? 瞄了教程, 发现是要有一张"明细生成页面"就动手去写

果然有问题... 在controller开启了show就可以去写show的html页面代码了, 我自己写的又问题百出了
而且还漏掉了展示total price的代码...而且那代码还有新的写法, 下面截图里我写的是旧的

最后要学到一个新的table的写法, 其实我能用就知识推导出来, 就是太不尝试了, 要勇于尝试啊!!! 看到一行就一个单独的cell就依旧勇敢去写啊! 我只敢写

        <tr>
           订购人
        </tr>

那样写巨丑...应该勇敢的写成如下的样子


上一篇 下一篇

猜你喜欢

热点阅读