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

《人性的弱点》阅读感想

尊敬的各位老师: 你们好!读完了《简单的逻辑学》后,又在接下来的几天里读完了这本《人性的弱点》,前一本提高智商,后一本提高情商,简直是绝配。在补完这堂情商课后,我开始怀疑起了人生,怀疑起了过往的友谊,那些到现在还没有和我断交的朋友,他们真是宽宏大量。。。 第一次看到《人性的弱点》,是九年前还在念大二的时候,那时去好朋友的学校玩,在他书架上看到了这本书,还顺手翻了翻,然后就放回去了。傻直的我内心鄙视了他一把:“我靠,你读这书干嘛,难道要利用别人人性的弱点?”当然,这只是心理活动,犹豫了一下没能说出口。现在想想,当时的自己真是傻的可爱。但这也反映了译名的问题,那就是容易让人联想到读它是为了利用“人性的弱点”。现在的我当然不会再这么想,可还是会有一些正直善良又缺根筋的人因为误解而不会碰它,而这些知识又恰巧是他们最需要的。这里要感谢老师们的推荐,让我得以修正观念。 我也终于明白好朋友为什么人际关系处理的那么好,尤其是异性缘。我甚至怀疑他是为了后一点才看的这本书。。不过,我觉得这也是本书的一个巨大卖点,为了获得美满婚姻生活需要读它,为了脱单更需要读它,鉴于我国光棍数量的庞大以及单身人士年龄普遍低于25岁,没准另出一个版本叫《脱单的要点》能够起到更好的传播效果,不但能解决大众人生问题,还能顺带提高下国民素质呢!开个玩笑哈。 说回我自己,它让我意识到了自己的很多问题,比如已经很久没有在与陌生人交流中主动微笑了,又比如时常打断朋友的讲话并指出他们的问题,还比如很久很久没有赞扬家人了。。。要是把它们全部写下来,够羞愧好一阵子的。它们也引发了我的思考,那就是以前也看过一些沟通类的书,为什么还会有这么多的问题?最终还是在《人性的弱点》里找到了答案。因为这些沟通类的书,从头到尾都是在说“我”该怎么做,而没有站在“对方”的角度解释我该怎么做他们才会高兴,才会更好的接受。 几天前,我需要去地税局办事,在出门前我按照书里p61的建议调整了自己的状态,而后充满热情与微笑的与每个遇见的人交流,效果非常好,它让原本枯燥无聊的办事过程变得愉快且短暂,和书里p60候诊室的案例如出一辙。而就在昨天,我还赞扬了母亲新置办的绿色布艺沙发,虽然。。虽然。。。你们懂的。 收获满满的 韩巍 PS:如果各位老师觉得需要的话,本邮件内容可随意使用。

June 3, 2017 · 1 min

《简单的逻辑学》阅读体验

会读书的人: 各位老师好!看到推荐后花了一天的时间一口气把这本书看完了,从没想到逻辑学的书会读的这么轻松。 上次一次读逻辑学的书是五年前的事了,当时读的是金岳霖的《形式逻辑》,读得难受不说,里面还有很多阶级斗争等等不合时宜的内容,在那之后就再也没有碰过逻辑学的书。一个原因是觉得自己看过这方面的书应该就够;另一个是内心潜意识中的排斥感,当时读得很难受,花了一个多月慢慢硬啃完,虽然也可能是因为第一次系统的读逻辑学书的关系,但那之后一看到逻辑学的书内心里好像就有个声音说,别碰!太痛苦了! 《简单的逻辑学》连叔在去年的荐书里也提过,因为上面的原因我也没读。这次受会读书的人激励,终于对自己下狠手了。回到一开头的那句话,没想到读的这么轻松,而且一天就读完了。书里很重要的一点是,观念一定要符合事实,我之前关于逻辑学的这个观点就被证明违背了事实。下面是我感触较深的几点。 首先,觉得看过就不用看了真是愚蠢观点。看过不等于就能自发的行动,所以一定要反复的读,时不时复习一下,以提醒和检验自己的行动,尤其是好书。读了它我才想起来,原来很多五年前学过的东西,更重要的是,我意识到这五年来很多时候没有按它们来行动。心理暗想,难怪连叔要多买几本放在家里的各个角落,确实是太重要了。 其次,真正有用的知识一定是一门生活的艺术。它一定是和生活紧密联系在一起的,如果读的东西有空中楼阁的感觉,那一定是没有把它和生活联系起来。尽管好的作者会把这点做的很好,但是更重要的是自己在生活中联系,在生活中实践。而逻辑学就是这样一门学科,虽然分类属于“高深”的哲学,但是其实和我们的生活联系得最紧密,时刻存在于我们的语言和思考中。 最后,鉴于它与生活的紧密联系,它真是一门人人应该掌握的学科。生活中的很多问题需要靠逻辑学去解决,生活中的很多问题也是因为逻辑谬误引起,甚至如作者说,历史上的很多重大事件也是因为大众群体性违背逻辑而发生。我不知道群众的逻辑能提高到什么程度,但可以肯定是每多一个逻辑清晰的人,那么世上的问题就会少一些,无论是从解决问题的角度还是从制造问题的角度。 当知道会读书的人的时候多少有点焦虑,心想,惨了!肯定会多出很多好书没时间看了。但又想了想,这两年来连叔推荐的11本书到现在也没看完,所以时间肯定不是主要问题,问题出在了自己的身上。或许,会读书的人引起的这种焦虑会成为一种新的动力。未来的日子里继续和各位老师一起读好书、更新观念、落实行动,成为真正会读书的人。 韩巍

May 29, 2017 · 1 min