20170615学习纪录

##Objective
###今天做了什么?

  1. 写ORID
  2. 看了全栈营二期的创意大赛比赛总结直播
  3. 学了Rails第三课:Rails101第四章
  4. 重点学习了下RESTful的概念

###关于今天的学习,你记得什么?
####新旧知识

  1. routes里面的resources是一组资源的意思
  2. RESTful概念是指,将CRUD封装起来,然后在外面对应着四个基本verb:POST、GET、UPDATE、DELETE,里面则是基本的七个acion和四个页面
  3. rails就是按照RESTful概念设计的,所以在编程的时候只要重点写好CRUD其他功能rails基本就已经帮我们完成了,只需要在进行参数设置、数据限制、页面设计就可以
  4. path路径其实就是helper的一个简写,在生产网页的时候还是会转换回基本的url的
  5. 在controller中定义的变量,带@的这些基本可以理解成中间量,他们只在controller中运算,在传送给view或者model后就会失效了。
  6. 浏览器真是一个重要的角色
  7. 人和浏览器之间的交互就两个,分别是request和response。
  8. response分两种,可见、不可见。可见的就是在views上、不可见的就是在model里。
  9. request面向controller,这里就用到了RESTful概念了,request原先用GET和POST两种,在RESTful里面有四个verb如上所述。而,request是通过调用url来实现的,这个功能的背后就是routing也是我们在config/routes里面的设置。
  10. Controller收到request后,对应四个动作,有七个响应(行动)及四个页面。他们通过Verb(动作、方法)和path(helpler、路径)来选择。
  11. 不同的对象会有不同的controller文件和views,在rails里生成controller的时候会生产对应的controller文件及views文件夹,七个响应在controller里是有固定名字的,对应其中的四个会有相应的四个自动调用的页面,他们的命名也是有规则的。
  12. 如果需要数据,则需要在controller中定义@变量,controller在model和view之间传输数据就是靠@变量。
  13. Controller的@变量和view之间只是数据传递关系,@变量和model之间则是运算关系。
  14. model和数据库之间使用的是数据库语言,但是controller和model之间使用的则是method方法,controller通过method方法完成和model的对话,这类方法本质上应该是属于model的方法(这点需要确认),但看上去对数据库的操作是使用model的method。而@变量和数据之间的关系,就像word应用程序与doc文件的具体关系,在CRUD后,C与U还需要进行保存操作,而D则不用。R就相当于用word打开doc,C相当于在word上新建doc,之后还需要保存到数据库,U相当于更改R或C后的doc,同样需要保存。D则相当于直接在word里删除doc。
  15. params[:id]的意思可能是,从当前的参数列表中提取id这个参数
  16. render是返回某个页面但是不刷新数据,就是不会重新进行一遍controller里面的取值操作的意思,也可以理解成不重新从model里面拿object的意思。
  17. 默写的CRUD前面四个是给views传参数用的,后面几个是对model传参数用的。
  18. validates是表示model接受数据时候的限制,这个并不限制controller的输出,而是限制model的输入
  19. render “form”是 <%= render :partial => “form” %> 的“缩写”,意思是要引用 Partial (局部)页面的方式。大量重复的程式码可以用这样的方式收纳。它的规则是同目录底下的 _xxxx.html.erb,要是其他地址则需写全,比如:”common/footer”或”common/navbar”
  20.    <%= f.label "title", :class => "string optional control-label" %>和 <%= f.text_field :title, :class => "string optional form-control" %>中,f.xxx表示显示类型,第二个的title表示接受数据对象,后面的class是样式。f,是前面复制的group
    
  21. gem 不是动态载入 Rails 环境的,只有“在 app/ 下开发的程式码”是动态载入,所以当有 app 外的档案被修改,都应该“重开”治百病。动态载入可以这么理解,就是这类动态载入的内容在程序运行期间是会不断发生变化,也就是刷新的。所以,新的变动会立马发生变化,但是类似GEM这些在程序一开始运行的时候载入后,后面就不会变动了。
  22. 在 Restful 的概念里把这个 groups 叫做 resources,“一组资源”的意思。
  23. 为了要控制它的运作,我们会创建一个新的 Controller文件 叫做 groups_controller.rb、
  24. 这七个 action ,是每个CRUD功能里最基本的动作。只要我们在 controller.rb 里定义 (def) 好这七个方法当作动作 (action)。其他的部分 Rails 就会帮我们处理了。
  25. 比如,设定 Routing (路由) 只需要简单一行: resources :groups,就可以了,所以我们定义好这七个action就算是完成了最基本的后端工作。这样不管浏览器端跑来什么样的请求 (request) ,Routing都会聪明地帮我们导向正确的 action 去运作后续流程。
  26. 因为 CRUD 是常见的操作行为,但是大家实作的方式、与网址设计方式不一样。造成很多维护上的困扰。后来就有人发明 RESTful 这个概念,希望用 HTTP 的动作 ( Verb)一起去封装 CRUD 的行为。所以,RESTful实际上相当于一个打包好的CRUD,适用于不同的浏览器。
  27. 而CRUD是指四种面向浏览器的四类操作,涉及七个Action,也可以理解为七个动作,以及四个页面。
  28. 所以,我们只要做好这七个ACTION,其他的工作rails会帮我们处理,因为其他部分的实际上是通用的程序。只需要进行一些通用设定就可以。
  29. 所以,本质上来看ROR就是写好CRUD,设置到config(routes),规定好model,设计好views,再加上一些其他的设置。
  30. 使用封装过后的RESTful,CRUD在外部看来就是四个HTTP request。所以提高了兼容性。
  31. resources就是一组资源的意思,在routes中就是表示这是一组restful资源,也即是一组规定格式的CRUD。

####遗留问题

  1. 能否不适用@而直接对数据库操作?

####涉及资源

  1. 网站:LOGDOWN;
  2. 网站:全栈营
  3. 网页:Rails 还有很多内建验质函式,你可以看这里:http://guides.rubyonrails.org/active_record_validations.html

##Reflective
###你要如何形容今天的情绪?

  1. 学习RESTful的时候大脑有过载的感觉,边调整呼吸边喝水坚持学习完了。感觉还是有些理解的不够透彻。

###今天的高峰是什么?

  • 加深了对RESTful的理解

###今天的低点是什么?

  • 学习的时间长了会有疲惫感。

##Interpretive
###我们今天学到了什么?

  1. 大脑有过载的感觉时,边调整呼吸边喝水坚持学习完了。
  2. scaffold也许是早起rails内置的,后面虽然功能完善,但一直保留,貌似后面建立程序就不是这么用了。
  3. 全栈营的论坛就像个矿场,没事可以去挖一挖。
  4. 有五个对象的MVC模型图貌似比四层空间模型好用,在加一个浏览器对象做中介效果更佳。最后画了个六个对象的关系图。
  5. Rails MVC架构、CRUDRails的RESTful是重点内容,要多回顾。

###今天有什么重要的领悟?
####编程知识

  • 本质上来看ROR就是写好CRUD,设置到config(routes),规定好model,设计好views,再加上一些其他的设置。

##Decisional
###我们会如何用几句话形容今天?

  • 加深了对RESTful的理解。

###明天有什么计划?

  1. 写ORID
  2. 学全栈营
作者

Han Wei

发布于

2017-06-16

更新于

2024-04-07

许可协议

评论