20170616学习纪录

##Objective ###今天做了什么? 写ORID 学习Rails第三课:Rails101第五章 ###关于今天的学习,你记得什么? ####新旧知识 devise的使用知识在command line上面显示的很清楚 两个量建立连接其实是先给一个量插入另一个的主键,之后在设置对应的关联 method分内建的功能和后建的,内建的又包括rails原有的以及GEM接入的。 current_user 是 Devise 提供的“正在登入的当前用户”,你可以在 controller 或 view 里面使用它。model不能使用。 !在函数或值前表示不等于,!current_user 表示“现在没有登入的用户” 要想在两个数据间建立关联,首先要选好主键,之后再设置外键,具体就是给被关联量插入主键XXX_id。先产生migration文件,再写入待插入列,最后rake db:migrate 建立关联需要在model里声明,通过has_many :xxxs 和 belongs_to :xxx。 model里面是定义数据结构和数据method(供controller使用) @group.user = current_user里的.user不是.user_id,导致能有两者理解,第一种是.user_id可以省略_id。第二种是.user中的点表示关联,这个命令的意思是关联的用户是当前用户。 在使用url的时候,同时要送出verb类型,这个是routes的必须的,而且在不指定的时候,是有默认verb的,可能是get,就好比在浏览器直接输入地址。 而送出表单的时候,额外的,还需要同时传输表单数据吧? 创建者确认不需要在new和create中,因为不涉及确认问题啊。 “ = ”是指派,“ == ”是等于“!= ”是不等于。 ####遗留问题 PUT和POST这个动作及数据传输在views页面上具体是怎么完成的??? 有没有办法绕过views,直接create、update、destroy数据? ####涉及资源 网站:LOGDOWN; 网站:全栈营 ##Reflective ###你要如何形容今天的情绪? 写ORID的时候感觉有些疲惫,可能过度提取了,这样会产生厌恶感,要控制好这个分寸,不然会影响学习的热情。 安装devise的时候,意外的体会到其实命令窗已经给我们很多信息了,只是我们习惯性的往下走而不去看它。 ###今天的高峰是什么? 加深了对devise的理解 ###今天的低点是什么? 学习的过程中感觉RESTful的应用还有些细节没弄明白。 ##Interpretive ###我们今天学到了什么? 知道什么是Action后,before_action就很好理解了。 devise的安装提示里面就写了,要修改页面运行命令 rails g devise:views即可,命令窗还是给了我们很多信息的,这些显示出来的信息之所以会显示出来,是有原因的。 devise安装好就可以用了,后面的只是设置权限和按钮页面等工作。 当年看电影还在想那些黑客怎么输入代码这么快,怎么记的?现在想明白了,他们就是在打英语啊,类似我们聊天那样,只不过他们是和及其聊天。 从find_group_and_check_permission的使用来看,private函数的声明是在先的,而且在before_action之前,不然他们将不能被before_action及action调用。 ###今天有什么重要的领悟? ####编程知识 命令窗口其实给了我们大量的信息。 ##Decisional ###我们会如何用一句话形容今天? 学习有点吃力。 ###明天有什么计划? ...

June 17, 2017 · 1 min

20170615学习纪录

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

June 16, 2017 · 1 min

报错纪录:将app/helpers/flashes_helper.rb 打成 app/helpers/flasher_helper.rb

在生成flashes功能时, 将 app/helpers/flashes_helper.rb 打成了 app/helpers/flasher_helper.rb

June 15, 2017 · 1 min

20170614学习纪录

##Objective ###今天做了什么? 写ORID 完成了Rails第三课:Rails101,前两节。 ###关于今天的学习,你记得什么? ####新旧知识 写ORID的时候还是要做一个当日笔记把闪念、知识点记下来 emmet用得好的话可以提高效率 emmet的基本符号有:> + ^ $ ( ) [ ] { } . # emmet中的#和.对应了css中的id和类 emmet中通过tab键替换,加上返回键基本完善了编辑功能 emmet过程中重点是要理解各个元素间的包含关系 Dash这个应用可以作为常驻一屏来使用 Spectacle让笔记本的屏幕起到了多屏的使用效率 bootstrap是一个套件框架,包含了css和js 要使用bootstrap的css功能和js功能先要安装gem,之后在将相应的模块接入project的css和js里 helpers里面的功能及代码 Bootstrap是Web设计圈有名的CSS框架,提供了开发项目快速便利的元件素材,如按钮、下拉选单、表格等等样式。 在Rails上要帮项目穿上Bootstrap,用的是bootstrap-sass这个套件。 option+G能快速输入©符号。 bootstrap/alert是bootstrap的js提示套件 生成MVC的时候,从底层开始,即:M→C→V ####遗留问题 按票数排序,先插入票数column,设置初始值为零(这个没想好怎么做),之后票数变化对应的进行值更新,用教材的公司,update_attribute lash_class(key)的函数原理,以及怎么在rails c中测试它的值,及to_sym emmet有几个功能按照dash的说明没能成功。 ####涉及资源 网站:LOGDOWN; 网站:全栈营 网站:heroku App:Dash Atom package:emmet ##Reflective ###你要如何形容今天的情绪? 在学习使用emmet的时候,感慨自己之前怎么没有专门安排时间来学习一个它的使用。 ###今天的高峰是什么? 理解了flashes_helper的原理 ###今天的低点是什么? emmet有几个功能按照dash的说明没能成功。 ##Interpretive ###我们今天学到了什么? 我们现在学习的工具和套件最简便的学习方式就是去他们的官网或者github上面查看使用说明,而dash就是把这些工具拉到本地来使用,反而特别好用。 很多工具朋友们之前都介绍了,但是没有自己真正消化,其实它们和自己一点关系都没有。 ###今天有什么重要的领悟? 我们现在学习的工具和套件最简便的学习方式就是去他们的官网或者github上面查看使用说明,而dash就是把这些工具拉到本地来使用,反而特别好用。 ##Decisional ###我们会如何用几句话形容今天? 为了提高效率学习了一些工具的使用。 ###明天有什么计划? 写ORID; 学习全栈营;

June 15, 2017 · 1 min

报错纪录:belongs_to :topic 打成belongs_to :topics

class Vote < ApplicationRecord belongs_to :topic end 错误打成了 class Vote < ApplicationRecord belongs_to :topics end

June 14, 2017 · 1 min

20170613学习纪录

##Objective ###今天做了什么? 写ORID 完成了Rails第二课:初级练习 ###关于今天的学习,你记得什么? ####新旧知识 在rails里面,model对应active_record、controller对应action_controller、views对应action_view,而后两个合并起来又叫action_ pakge model是用来对数据库操作的 class和集合类的命令都是适用于群体的 @media是设置在不同的显示环境下适用的css youtube上面有很多的原理解释视频,简直是学习的宝库 IRB(Interactive Ruby Shell) :pluralize前面的冒号表示这是一个方法或者函数,总之可以调用或是接上的意思 method会取参数parameters(参数),表示它们要对那些参数操作。 method也可以return(回传)资料。在Ruby里面,method会回传最后一行的结果,无论该结果是什么。 scaffold(包括modle、view、controller)。可以理解成是database和人之间的操作媒介。 generate scaffold 相当于打包了generate model,generate controller, generate view了。 空间模型应该理解有四成,加入database View会产生html来显示在浏览器,view档案是用ERB写的,它是一种样板语言(tamplate language),里面是html加上内嵌的ruby程序码。views里面的ruby的变数便是当使用者要浏览该页面的时候,所要填入的内容。(还有别样的样板语言,但是在railsbridge我们只用ERB。) Controller把objects在Model和View之间传来传去。 每一个URL都对应到Controller里面的某一个特定的method。 在这一步骤以后,当你打开你应用程式里面的任何一个页面,该请求(request)会被某个Controller的method处理。 当我们把Model、Views、Controllers放在一起的时候,他们会遵循以下的模式: 给一个Url,Rails会去检查要使用哪一个Controller里面的method(又称为“Action”)。Controller Action会去呼叫Model里面对应的methods。Model会去读写资料库,然后把包含资料的object回传到Controller。Controller会拿到这个object并且丢到View里面。Action通常会有对应的View档案,Rails会自动寻找并使用它。) Scaffold展示的就是一个最基础的CRUD(new topic, show, edit, destroy) root “topics#index” 中的除了#index的写法外还有没有其他的参数? routes定义的是启动controller(action)的名称、调用路径、使用方法及需要的参数列表。 <%= link_to topic.title, topic %>也可以打成<%= link_to topic.title, topic_path(topic) %>,后一种方式更好理解(我的自己想出来的做法),前一种简洁(教材上的做法),貌似路径名和当前的object名相同的时候才能使用后一种方法,而且默认方法是GET,因为edit_topic就不能用后一种方法写。 View的文件夹是生成controller时候同时生成的,touch只是创建里面的子文件。 ####遗留问题 按票数排序,先插入票数column,设置初始值为零(这个没想好怎么做),之后票数变化对应的进行值更新,用教材的公司,update_attribute ####涉及资源 网站:LOGDOWN; 网站:全栈营 网站:heroku 网页:Active Record Query Interface的资源页 ##Reflective ###你要如何形容今天的情绪? 早上没吃早饭,明显感觉到在写ORID的时候的缺能量感 吃完饭后,觉得有点疲劳,然后来了罐可乐开始学习很快疲劳感就没了 下午连着学几个小时的程序后,感觉有些恶心感,就安排了休息。 ###今天的高峰是什么? ...

June 14, 2017 · 1 min

20170610学习纪录

##Objective ###今天做了什么? 复习了全栈营VIP入学手册和Rails第一课:环境建置 写ORID ###关于今天的学习,你记得什么? ####新旧知识 Rails是通过rubygems.org安装的,这么算来rails是当作gem来被ruby使用咯?而且rubygems的地址是通过RVM来指定?在安装ruby时是通过RVM,而并非GEM,但教材中出现若ruby安装不成功是,则将ruby源改成改成中国的,意思就是安装ruby的来源其实也还是gem。 而ruby是通过RVM安装的,而不是通过ruby官网,因为需要版本控制。 Homebrew和rvm的安装方式相似,很像是从远处拷贝过来,然后在本地安装。 通过 herouku logs 命令可以查看错误heroku上面运行的错误信息。 ####遗留问题 无 ####涉及资源 网站:全栈营 网站:LOGDOWN; ##Reflective ###你要如何形容今天的情绪? 因为是复习旧知识所以比较轻松,初始加速度较快,感觉进入了状态。 学习完rails第一课的时候有些疲劳,就开了个电影放松,就想着不长,结果一看两个半小时。。想了想看就看了,就看完吧,结果后面梁璐打电话过来,最后还是没看完。 ###今天的高峰是什么? 复习的时候很快回想起了原来学习过的知识。 ###今天的低点是什么? 学习完两个全栈课程后,有点疲劳,状态下降。 ##Interpretive ###我们今天学到了什么? 流利说可以一天学一个新课,复习一个卡片,然后刷一个满星。 Homebrew确实是一个便利的工具。 ###今天有什么重要的领悟? 英语的提高对编程学习确实有很大的帮助作用。 ##Decisional ###我们会如何用几句话形容今天? 从头开始复习全栈的课程,发现学习的速度比之前确实快了很多。 ###明天有什么计划? 写ORID; 学习全栈营;

June 13, 2017 · 1 min

20170609学习纪录

##Objective ###今天做了什么? 看完了LOGDOWN的笔记 整理了下印象云笔记 整理的下近段时间的ORID。 ###关于今天的学习,你记得什么? ####新旧知识 无 ####遗留问题 无 ####涉及资源 网页:LOGDOWN; APP:印象云笔记 ##Reflective ###你要如何形容今天的情绪? 花了几天终于把LOGDOWN的内容看了一遍,算是继续学习编程的热身,不得不说一下看这么多文章还怪挺累,看的过程中经常会有厌烦的情绪,碰到这种情况,只能暂停下来,等一会再接着看。 ###今天的高峰是什么? 在看到logdown最新的几篇时,心流了。 ###今天的低点是什么? 看文章过程中有几次脑袋空白,看不下去。 ##Interpretive ###我们今天学到了什么? ORID可以写一份总的,然后把技术部分提出来放到技术博客上面去。 ORID可以分两天写,当天写主要部分,第二天再补充,包括当天写完后面的事情,还有一些另外的想法。 即便是写ORID也不能代表不用复习。 ###今天有什么重要的领悟? 即便是写ORID也不能代表不用复习。 ##Decisional ###我们会如何用几句话形容今天? 完成了之前的学习博客的阅读,回到学习编程的正轨上来,正是进入辞职后的第三阶段——就业技能储备阶段。 ###明天有什么计划? 从头开始过一遍全栈营的课程 写ORID

June 10, 2017 · 1 min

2017年第12周总结

1.“本周学到的最棒概念/工具” 本周学到的最棒的工具是流利说,之前在玩swiftplayground的时候,屡屡被解说的英文打断积极性,在使用了一周的流利说后,轻松完成swiftplayground的学习任务; 2.“本周遇到最大的坑” 本周遇到的最大的坑是没运动、没运动、没运动。从开始学习全栈营后,就停止了原先的跑步习惯,第一个月的时候身体出现了神经衰弱,以为是没休息好。之后,睡眠时间越来越长,但是白天的状态也越来越差,直到最近才意识到这个问题,自己可能是因为没运动亚健康了,之后运动了一晚,果然第二天状态就好了很多,再之后有时像以前一样有时谁6个小时也没什么大问题。

March 27, 2017 · 1 min

编程作业:SecureRandom.uuid的作用

SecureRandom.uuid 是 Ruby 内建的随机生成器。

March 27, 2017 · 1 min