购物网 5.7

尝试转换成代码需求

请设计一个功能,可以一键清空购物车内所有的物品

弄个按钮, method是delete而且是delete all那种...估计要去controller里面定义个action叫delete_all之类的? 再弄个相应的routes应该可以动.

某样东西突然不想买了,我可以在购物车内删除它

购物车清单的那页, 每个商品后面加个delete的按钮就可以实现了.

已经加入购物车的物品,不能重复被加入

我理解成 『相同商品可以本人的quantity变多, 但此商品不能重复多次出现在购物车list里面』如果是这样, 就是添加相同商品时, 只能导流到『数量变多』,而不是list上多一条相同商品...嗯...是如何实现这限制呢...

可以更改购物车内购买的数量( 原本预设数量都是1)

添加一对按钮, 用"增多"以及"减少"就能搞定吧? 估计是用上自定义的route? Rails第一课的加分题貌似就玩过. 好好回忆一下! 还有个"初始值"的要求...

库存为 0 的货品不能购买

在add_product_to_cart的定义里面加一行代码, 设定" quantity != 0 " 这样应该能成.

在购物车新增数量时,不能更新超过原有库存的数量

这是在model里面添加一个validates吗? 还是在add_product_to_cart的定义里面设定" <= quantity"?


那么实作一下吧

请设计一个功能,可以一键清空购物车内所有的物品

从view的代码开始思考. 在购物车页面添加一个"一键删除"的按钮. 然后要搞定routes...嗯...用后台金手指肯定能delete_all的...但是不是rails console这后台的话,代码要写前台哪里? 怎么写?

  • Controller

不管了, 先去controller定义一个delete all试看看, 先去检查有哪些model. 推断要删掉整个cart里面的商品要先定位到user, 不能把全部cart商品删掉(有其他user的cart数据也在, 不能动别人的吖)所以我这样玩

自己也觉得不对劲...继续改改...


那就继续改改


感觉应该用session? 有session的代码locate会更准一些? 而且controller里面这样定义的话, 前端代码要怎么写啊? 不是routes啊...

  • Routes

那来写个自定义的routes用. 相对member, 记得有个collection来着, 能整锅端掉.


嗯, 一运行就报错了...routes写错哈哈哈哈


就立马去看了教程, 发现我特么思路居然是对的!!! 吓到我自己了!!!! 我要嘚瑟了我!!!!!

居然真的是用到collection, 但是我拼写错误了尼玛哈哈哈哈


诶!!! 等等, 如果routes有这样的功能, 那就不用在controller里定义了, 前端view能直接用routes写代码了呀! 去试试!!!

嗯, 运行了一下, 果然还是要去controller定义来着哈哈哈哈 要定义clean哈哈哈哈 尼玛原来clean不是内建代码, 最后还是像之前的publish/hide一样是自己起的名字啊喂! 所以最后我自己乱写的delete: :delete_all这句, 仅仅错一个地方, 就是delete后面不用加一个":"符号!!!delete :delete_all就是对的! 只要去controller定义了就是对的! 妈呀!!! 根据报错改就行了!

  • 前端view代码

嗯嗯, 挺满意, 前端的代码也写对了, 除了小细节, 漏掉了data的部分哈哈哈

  • 最后修改

问题就出在controller啦~原来根本不用我那样写, 不用locate用户...也不用找session... 简单的就成...而且不是delete.all或是delete_all而是destroy_all啊!对啊!内建的可不是destroy吗?!

然后我的大致思路是对的, 的确有cart_items, 虽然被优化到model去定义了, 但思路对了! 恭喜自己!!! 我去, 我真的进步好大啊! 能挣扎着写出新功能代码的大致方向了!!!


某样东西突然不想买了,我可以在购物车内删除它

就是加个按键的事情, 就去搞定了, 没想到报错了...Orz

截图有错别字, 是locate不是local啊...

我去...我这报错被爆的心服口服...居然是因为没有相关的controller以及routes...注意观察目前为止routes里面只有cart相关的path们...压根没有cart_item相关的啊! 这两名字相近, 但他们完全不是一回事!!! 他们是两张独立的表格! 独立model们来的!!!

  • Controller

最惊吓是cart_item居然还没有自己的controller, 那怎么可能做任何的"删除"操作啊喂! 还以为只是加个前端的按钮, 没想到后端都没有架构起来 😂

开开心心去写了个controller的定义, 然后报错...所以...

应该不会呀, 尝试改一下把find(params[:id])里的id 改成 product_id说不定可行? 嗯, 不行...

原来我一开始就locate的太细了...要通过cart才能再到cart_item...

用到了find_by, 而且要说明product的由来...妈呀...好多细节遗漏...

最后也有个厉害的写法, 提醒文本里面能调用数据...用的是#{@product.title}这样的写法. 学习了!!!

  • 前端代码也不是我的写法

因为希望调用icon而不是文本作为前端代码, 所以换了一种代码写法.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352