美文网首页
购物网 5.7

购物网 5.7

作者: RealAnalysis | 来源:发表于2019-06-11 13:10 被阅读0次

尝试转换成代码需求

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

弄个按钮, 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而不是文本作为前端代码, 所以换了一种代码写法.

相关文章

  • 购物网 5.7

    尝试转换成代码需求 请设计一个功能,可以一键清空购物车内所有的物品 弄个按钮, method是delete而且是d...

  • 购物网 5.7 继续

    已经加入购物车的物品,不能重复被加入 我真没思路...勉强想到跟product_id有关, 但如何限制重复出现.....

  • 购物网 二刷第二周进度 5.7

    请设计一个功能,可以一键清空购物车内所有的物品 再次写对了routes, 开心~但是前端view以及control...

  • 消费

    2016.06.08 馒头:1 地铁费:5.7 2016.06.07 早餐:6 地铁费:5.7+5.7 花:18 ...

  • ubuntu安装mysql5.7教程

    ubuntu安装mysql5.7教程 参考资料 MySQL5.7参考手册[MySQL 5.7 Reference ...

  • macOS Sierra 安装 MySQL 5.7

    原文链接 Install MySQL 5.7 on macOS Sierra Install MySQL 5.7 ...

  • 购物网站

    工时 项目日数demo10用户登录,注册3PayPay等日本第三方支付方式支持4优化UI视需求而定适配手机页面3其...

  • PHPStudy 把mysql5.5 升级到5.7

    下载mysql 5.7 https://dev.mysql.com/downloads/mysql/5.7.htm...

  • CentOS 7 安装 mysql 5.7

    下载mysql5.7源安装包 安装mysql5.7源 安装mysql5.7 启动mysql,并将其加入到自启动。 ...

  • Wordpress+Woocommerce网站优化境内用户访问境

    网站背景介绍 最近在帮朋友做的一个购物网站,网站使用Wordpress+Woocommerce搭建,由于这个购物网...

网友评论

      本文标题:购物网 5.7

      本文链接:https://www.haomeiwen.com/subject/rqixfctx.html