美文网首页
383任务复盘

383任务复盘

作者: 柳辉 | 来源:发表于2017-09-29 17:21 被阅读20次
image.png

一、什么是383任务?

好牛逼的名字,有木有,哈哈,其实就是给chat和tag之间加个中间model,就像上面图片所说的,增加Chat::Tag模型

本来打算9.6~9.8号3天完成的,结果却是这样:

image.png

到9.25号才完成,花了20天才完成,7倍啊,我也是醉了。

二、分析一下原因吧?

总的来说,个人原因居多,自己水平不行啊,客观原因可能就是微信上问问题效率太慢,而且github上回复也慢呢

仔细分析下犯的错误吧。数了一下,至少30个以上的错误,这里选择31个比较有代表性的。

1、不小心把本地的Gemfile.lock给上传了

image.png

2、chat/customer.rb忘记加accepts_nested_attributes_for、json接口和customers_tags_attributes属性


image.png

首先,accepts_nested_attributes_for :customers_tags是为了让customers_tags的属性也能和customers属性一样被更新、删除

其次,json_options是序列化的参数,到时候h5页面可能会用到

最后,customers_tags_attributes应该是这样写:

[ customers_tags_attributes: %i[ id tag_id _destroy ] ]

如果不加的话,怎么传参数啊,id是customers_tags的id,_destroy可以删除本记录。

3、没有加validate

image.png

4、字母序

image.png

5、少了acts_as_paranoid(现在知道了这是软删除)

image.png

6、tag也要加上validate

image.png

当时没有认真想想tag添加的时候也要验证一下在未删除情况下唯一性、是否存在

7、这个忘记加dependent::restrict_with_error了(现在知道了,当tag被customer使用时是不能删除的,当出现有关联的tag被删除时,restrict_with_error会限制并报错)

image.png

8、字母序

image.png

9、本来抄系统里别的文件的代码,但是感觉enabled的默认值应该是true才对,于是将原来的false改成true,谁知道数据库的默认值都为false,由Ruby代码控制实际默认值的

image.png

10、lock_version是乐观锁,忘加了

image.png

11、不知道还能这么变(现在知道了,可以写成这样,代码更少,但是不知道为什么要要加deleted_at_and_customer_id_and_tag_id)

image.png

12、不知道Rails标准(现在知道了,如果要加索引,可以这样)

image.png

13、少了allow_destroy(加上这个就也能把关联的属性删除)

image.png

14、customer对应的是多个customers_tags,这里我直接写成了一个tag_id,明显不对嘛,在写这个的时候,还是20天前,那时候对这些关联啊懵懵懂懂的,现在基本都明白了

为嘛json_options不用写

image.png

15、写多了一行,太粗心了

image.png

16、这个也是对acts_as_paranoid不知道,所以犯了这么个错误

image.png

17、要加上validate

image.png

18、又是字母序

image.png

19、 又缺少acts_as_paranoid

![image.png](http://upload-im ages.jianshu.io/upload_images/1866870-eb68997de2bf304c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)_

21、这样肯定不对啊,customer的view怎么会有tag_id的字段呢?当时完全是懵逼的状态。现在知道了customer不只有一个tag,所以应该是多维数组的形式来传参数

image.png

22、这也不对

zhe'ye

23、当时完全不会做,剑爸5分钟写出来的,后来还是需要修改一下。

因为当时是通过chat/cusomer修改bag/customer,有且只有这样的逻辑,所以没加上chat/cusomter本身的修改。

另外,chat/customer和bag/customer的关联是polymorphic的,如果用accepts_nested_attributes_for 需要手动指定type,前端就比较复杂。

image.png

后来改成这样了

    @customer = customers.find_by(user_name: params[:id]) || customers.find(params[:id])
    @saved = model.transaction do
      @customer.attributes = param.permit(model.admin_fields)
      @customer.customizable&.add_remark!(param[:remark_name])
      @customer.save!
    end

24、这句话啥意思

image.png

有很多疑问,比如什么是customizable,什么是polymorphic类型

customizable是customer的多态类型,那么,可以这样定义:

belongs_to :chat

为什么polymorphic类型的关联不能直接用accepts_nested_attributes_for

25、学习了

image.png

26、系统会自动读取chat/customers_tag的表名

image.png

27、学习了


image.png

28、如果换成t.格式的话就要写在creat_table里面

image.png

29、为什么要加上chatroom.find(user_name:params[:id])呢?

image.png

user_name是微信用户登录的识别码

30、method::get 可以省略 这是因为默认就是get方式

image.png

31、让我用transaction写,但是不会写啊,后来剑爸写的

image.png

第一次做这么完整一点的任务,包含三个model,多对多的关系。

收获:让我了解了很多Rails的功能和特性

1、关联的Model如果加上touch: true,那么和这个Mode关联的另外一个model在更新时,这个model的updated_at也会被更新

2、inverse_of可以避免重复查询

3、accepts_nested_attributes_for可以更新、删除关联的属性

4、transaction可以直接写成一个代码块

@saved = model.transaction do
 ....
end

5、acts_as_paranoid 是软删除的gem

6、polymorphic多态让model更简洁

7、validate的相关用法

比如uniqueness、scope、existence、presence

相关文章

  • 383任务复盘

    一、什么是383任务? 好牛逼的名字,有木有,哈哈,其实就是给chat和tag之间加个中间model,就像上面图片...

  • 【N~今日复盘】

    【N~今日复盘】 成就事件&感恩日志 早起准备早餐和午餐 上周早餐复盘 上周任务复盘 课程复盘 感恩日记 ?感谢爸...

  • “复盘”自己

    今天我要完成一个艰苦的任务:“复盘”自己。 说任务艰巨是因为“复盘”自己要真实,要客观,要全面,要深刻。要通过“复...

  • 【N~7.22复盘&7.23任务清单】

    【N~7.22复盘&7.23任务清单】 7.22复盘 书法一张纸 完成校外教育加试卷 完成上周复盘 爱的厨房❤️ ...

  • 【N~7.15复盘日】

    【N~复盘日】 新的一周,时间看得见 7月上旬复盘&月周目标回顾&7.15任务清单&7.14复盘 7月上旬复盘(7...

  • 【N~🧠7.18复盘&7.19任务清单

    【N~?7.18复盘&7.19任务清单� 7.19部分任务清单 读书复盘。用书营中午分享准备。学以致用很关键。 运...

  • Day383 工作复盘

    1、能解决的事情我都尽量自己解决,因为我觉得你这边要处理的事情又多又琐碎,压力也挺大,所以希望少给你增加额外的麻烦...

  • 逐字稿和音频任务复盘

    这是一个任务的复盘和复盘后感受 复盘缕清逐字稿和音频制作方法+下载图文识别 (写逐字稿+音频版的复盘 ,<含摸索操...

  • 6.13 读虚舟《复盘》第五章

    复盘六字诀 一、慢—以慢为快 在复盘中,不是为了完成任务那样去“赶复盘”,复盘需要足够的时间,需要放下所有事情,给...

  • 【N~7.24复盘&7.25任务清单】

    【N~7.24复盘&7.25任务清单】 7.24复盘 完成今日复盘 洗漱,泡脚 陪伴女儿:绘本和音乐 书法课 爱的...

网友评论

      本文标题:383任务复盘

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