20170620学习纪录

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

  1. 完成了rails101附加作业

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

  1. namespace就是域名空间,和资源不同,它没有具体的action,知识一个名字,所以和同层级的资源是并列关系。
  2. 调用经过中间表连接的数据时,使用的不是source名称,使用的是在model里面定义的名称。
  3. will_paginate的使用方法有三步,安装、controller使用,页面加上页标。
  4. 面向对象的话,可以理解视觉限制和行为限制还有数据结构控制,分别通过view和controller还有model设限制。

####遗留问题

####涉及资源

  1. 网站:全栈营

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

  1. 要注意区分push github和heroku 的命令。

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

  • 总结will_paginate的使用方法有三步,安装、controller使用,页面加上页标。

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

  1. 晚上头疼,已经有段时间没有这感觉了,可能需要休息了。

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

  • 完成了作业。

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

  • 头疼,学习学不下去。

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

  • 在解决了一件脱了很久的事情,把作业完成了。。

###明天有什么计划?

  1. 写ORID
  2. 学习全栈营。

20170619学习纪录

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

  1. 写ORID
  2. 学习全栈营
  3. 开始做rails101的附加作业。

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

####遗留问题

####涉及资源

  1. 网站:LOGDOWN;
  2. 网站:全栈营

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

  1. 理财的重点不在具体花了多少钱,而在于你还有多少钱,大体花了多少钱。
  2. 涉及到新安装GEM的,不止在bundle install后重开 rails s,在设计到相关安装的命令的时候也一样要重开rails s。
  3. 教材里的“before_action 后面加的往往是一个 controller 内的 method”说明了controller的action也叫controller的method
  4. .destroy_all和delete_all是alixs
  5. 把“权限检查”的代码,套用到 update / destroy 上说明两个问题,第一是可以不通过edit来启动update因为前面edit已经设置权限了,这表明可以伪造表单来传送。第二,说明在程序码里面还是按顺序来进行运算的,因为这段代码在保存的那段之上。
  6. 在生成post的new的时候需要group是因为,的后面的create的时候需要页面提供group来确定关系,所以虽然在显示这一步不需要,但还是要提供。
  7. 拿数据是ror的一个重要内容。
  8. has_many :participated_groups和has_many :members的红色字部分实测可以自己任意取名字。

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

  • 拿数据是ror的一个重要内容。

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

  1. 今天出门办事虽然过程复杂,但是情绪平稳。

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

  • 做附加作业的时候速度很快

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

  • 做的太快,过程中出现了一些小bug,后已修复。

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

  • 办事的缘故,今天的进度不多。

###明天有什么计划?

  1. 全栈营
  2. ORID

20170618学习纪录

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

  1. 写ORID
  2. 全栈营
    ###关于今天的学习,你记得什么?
    ####新旧知识
  3. current_user是devise接入的user的model方法,所以能不能被model使用需要验证呢。
  4. Model里面定义的methodview也可使用,比如:.is_member_of?
  5. 在一个对象的下面加入action,等于在它的这组资源上加入动作,这除了写代码,需要设置,调用路径和使用方法,这句是在routes里面设置的,”resurces :group do — member do — post :join — post :quit — end — end”
  6. member表示这个动作在groups资源名下且是对groups的单个对象进行的操作,post 表示使用方法,join和quit表示的是函数名称。有一个疑问就是,为什么是POST?试了发现在这个程序了,post、get、put、delete都可以,而另外用的abc则不行。难道这个方法名称和地址只是用来启动controller里面的函数用的吗?这个问题先留着,免得混乱
  7. 这和groups名下的posts只表示从属关系不同,member涉及到对group的操作,而posts只是在对自己操作,而且是在自己的controller文件里,它只是需要group的相应id而已。
  8. 脑袋模拟功能的时候要想到:动作、页面、数据。对应的来设计自己的网页。
  9. 运行rails g controller account/groups时,表示了两个信息,一个是我们要形成一个关于group的account,第二个就是我们需要对group对象进行动作。
  10. 在routes写入“ namespace :account do – resources :groups – end”只是设定了触发设定的链路,而并不是表示有两个groups,实际上他们操作的对象是同样的group,只不过形成两个controller文件及对应的动作和触发链路。
  11. bootstrap真是提供了不少样式啊。
  12. .participated_groups不用加.All表明,集合量和Group.All还是有区别的,后者相当于对一个抽象的概念进行运算才能拿数据。
  13. 如果对应一个url只有一个verb则可以省略verb,比如edit,但如果有多个的话,就需要,比如destroy、update和show这类公用地址的。
  14. 几个th和td是默认等间距安排位置的,所以他们的位置会随着网页大小的变化而变化。
  15. 在实现destroy功能的时候,漏了 @group = Group.find(params[:id])这一句,居然也能删除。。搞不懂。啊,是因为find_group_and_check_permit这个before_action里面已经有了。
  16. current_user是系统参数信息,所以不用像在group里面打开posts那样还需要送group的值。
  17. 虽然附加作业在调用delete和edit的时候有传送group的数据,但是在controller里面并没有用到他们,试了一下,不使用@group来接受也没问题。
  18. simple_format用来修饰网页的,所以它属于helper。或者它本来就是程序提供的helper功能,不过是本身自带还,还是bootstrap带的,还是simple_from带的这个就需要去验证才行了。
  19. 后面教材解释了,simple_format 是 Rails 内建的 Helper,可以在生成网页时帮忙把 \r\n 翻译成为
  20. Helper 就是用 Ruby 写的“View 装饰的小方法”,你也可以自己定义。自制 Helper 都会放在 app/helpers 下。
  21. partial 还可以用在循环上。例:“<%= render :partial => “group_item”, :collection => @groups, :as => :group %>”另外一个_group_item.html.erb
  22. 要注意区分“git push -u origin master”和“git push —all origin”的区别
  23. 和前面不一样,这课要选择推送分支“ git push heroku ch08:master”如果退主分支的话,“ch08:”省略就行了。
  24. root ‘welcome#index’是指root指定到welcome的index

####遗留问题

  1. member表示这个动作在groups资源名下且是对groups的单个对象进行的操作,post 表示使用方法,join和quit表示的是函数名称。有一个疑问就是,为什么是POST?试了发现在这个程序了,post、get、put、delete都可以,而另外用的abc则不行。难道这个方法名称和地址只是用来启动controller里面的函数用的吗?这个问题先留着,免得混乱。
  2. 右边的下拉菜单在窗口横向分辨率小于768时,如何正确显示。

####涉及资源

  1. 网站:LOGDOWN;
  2. 网站:全栈营
  3. Helper 的意思是“小方法”,View 用的小方法,Rails 内建很多这种有趣的小东西。这里有更多小方法:http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html

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

  1. 知识的迁移本质上就是从上一个知识提取出框架,然后将相应的具体对象换掉。
  2. 貌似只有带挑战而且能快速闯关(不停的活动小反馈)的事情才能进入心流
  3. 优化了下ORID的顺序,不知道这个顺序最初是由哪里传出来的
  4. 学习过程的理解,可以理解也是一种“中翻中”,或者说翻译,不断将未知的东西翻译成已知的东西,将他们连接起来,最开始的就是观察到的现象和图片、文字连接起来。这么看起来,除了最单一的感受外,其他所有的记忆都是复合体,并不是单一的一个记忆点,而是一个记忆集合,只不过用一个概念把他们连接起来,你在使用的时候连接了这个概念,并且相当于建立了通过连接这个概念而连接它被后其他关联量的链路。
  5. 大脑学习的时候可能会出现疲劳感,坚持到它消退,和换个内容学习来消退其实本质是一样的,但坚持下去还是有不会消退的风险,就是疲劳感和厌恶感加深。所以,一定要注意自己的状态,累的时候或者厌倦的时候换个事情做来缓解一下或许是个更好的方法。这个方法应该也可以用在看书上。
  6. 有很多拓展工具也,回头一定要细细研究下。
  7. helper有自带的、接入的、自定义的三种。

###今天有什么重要的领悟?
####学习方法

  • 学习过程的理解,可以理解也是一种“中翻中”,或者说翻译,不断将未知的东西翻译成已知的东西,将他们连接起来,最开始的就是观察到的现象和图片、文字连接起来。这么看起来,除了最单一的感受外,其他所有的记忆都是复合体,并不是单一的一个记忆点,而是一个记忆集合,只不过用一个概念把他们连接起来,你在使用的时候连接了这个概念,并且相当于建立了通过连接这个概念而连接它被后其他关联量的链路。

####编程知识

  • 知识的迁移本质上就是从上一个知识提取出框架,然后将相应的具体对象换掉。

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

  1. 今天情绪平稳,无大的波动。

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

  • 做附加题作业的时候思路清新动作飞快。

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

  • 学习的过程中有些地方理解不够透彻。

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

  • 用回了交叉学习法,英语时间不减少的情况下,编程时间大幅加大。

###明天有什么计划?

  1. 学习全栈营
  2. 写ORID

20170617学习纪录

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

  1. 写ORID
  2. 全栈营学习:Rails第三课:Rails101的第六章和部分第七章
  3. 和广州Meetup的小伙伴们进行购书交流

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

  1. 关于数据的method是在model里面定义的,并且在view里面又可以使用,比如我们的群成员判断功能。
  2. 当要定义多对多关系是一定要使用中间表,通过中间表的两个一对多完成多对多功能
  3. 在完成好了多对多的关联后,还要写清楚多对多的两个量的关系,也就是谁是谁的成员,又是谁加入了谁
  4. No route matches [GET] “/groups/1/posts/new”,如前面说的,方法+路径。
  5. 教材题目是设计 Post 的 model 架构,设计model就是设计架构吗?
  6. routes是定义资源调用地址的,资源需要你写,但写出来要使用的话还要给他们赋予一个地址
  7. resources :groups do – resources :posts – end就是一种定义地址的方式
  8. 数据关联是在model里面设置的,action在controller里面也已经有了,view也是匹配的controller,而controller的文件夹,gourps和posts是并列的,所以这个路径地址实际上影响的只是url。
  9. 数据关联的另一个意义,可能还是在于参数绑定,比如:group和post的id同时获取,那么就是post的id在group的id的名下。
  10. 命名规则相当于用group_post替代了group
  11. 另外还有第八个动作PATCH,但它和PUT一样都是update功能。是同名还是同功能?
  12. 命令git commit -m “add posts nested route”中的,nested意思就是数据关联其实就是巢状链接?nested route的意思是,这个uri了带有关联关系吧?
  13. :only => [:new, :create]和only: [:new, :create]等效。多参数就加上中括号,若果只有一个参数就不用中括号,其他的一样。
  14. 在post里@group = Group.find(params[:group_id])的写法是:group_id,而在group里的写法是:id。是否在每个对象里:id默认是自己model的id,而XXX_id则是你要调用的其他model的标准写法?
  15. 可能在@post.group = @group及@post.user = current_user这类写法里,group和user和group_id和user_id是等效的吧,就像人和身份证号。
  16. 用group_path(@group)而不用group_posts_path(@group),那是因为前者的页面已经包含了我们的信息,而且这样可以少一个post的index的action。
  17. @posts = @group.posts表示一旦建立了数据关联,就可以轻松调用。
  18. method除了是“程序语句”,还可以同时是“功能叙述”。比如,.order(“created_at DESC”)用.recent代替。
  19. Scope是Rails 里面的一个内建 API可以用来包装一些查询式,让代码更直观一些。你可以想像成,拿来包装“常用 query”的方法。
  20. scope是在model里面定义,表明controller里面使用的关于数据的方法应该就是model的方法。
  21. 教材的解释,应征了前面关于model和dababase交互的理解。rails的ActiveRecord框架帮我们完成了翻译,下面一句话摘自教材。
  22. 教材:“实际上呢,Model 里面的所有语句,看起来是“Ruby 语句”,实际上是 Rails 帮我们“翻译”成为了数据库语句。(这一套叫 ActiveRecord 框架)”
  23. 不单单是命令窗的指令输入的返回文字有意义,rails s的运行log也有很多有用信息。
  24. “因为数据库语句也是个“巨坑”,Rails 开发的目的,在于希望程序员专注于“产品”的逻辑设计,而花上少一点时间去纠缠非常底层的细节。在刚开始学习过程中,其实你是不太需要去纠结数据库语句的,大部份你想要捞的数据,ActiveRecord 都能帮你搞定,而且可以“形容”的非常“口语”。”
  25. 推送上heroku的程序,不需要bundle install,但是需要heroku run rake db:migrate
  26. 要去哪里才能知道,我想要的功能要用什么 gem 呢?*各种功能的gem一览: “RubyToolbox”
  27. 涉及到多对多的关系是,就需要建立个中间表,明确完三个表之间的关系后。还要通过命令明确主从关系,比如,教材:“has_many :participated_groups, :through => :group_relationships, :source => :group”和“has_many :members, through: :group_relationships, source: :user”,分别先后在model的user.rb和group.rb里面明确关系。这样当捞 user.participated_groups 时,就会捞出“参与的所有群”。如果只执行上面两句命令中的一句,那么只能捞出members或者participated_groups的。
  28. 建立联系后,就可以通过activerecord去捞出数据。这个实现了比主从键直接捞数据更复杂的功能。
  29. “=> #<Group id: 8, title: “Board 1”, description: “Board 1 body”, created_at: “2017-06-17 06:37:08”, updated_at: “2017-06-17 06:37:08”, user_id: 2>”和“ => #<ActiveRecord::Associations::CollectionProxy [#<Group id: 8, title: “Board 1”, description: “Board 1 body”, created_at: “2017-06-17 06:37:08”, updated_at: “2017-06-17 06:37:08”, user_id: 2>]>”的区别在于前者是直接从数据库读出来,后者需要通过ActiveRecord去捞出来。
  30. 这个与“2.3.1 :004 > g.user — User Load (0.1ms) SELECT “users”.* FROM “users” WHERE “users”.”id” = ? LIMIT ? [[“id”, 2], [“LIMIT”, 1]] – => #<User id: 2, email: “2@qq.com“, created_at: “2017-06-16 13:01:10”, updated_at: “2017-06-16 13:01:10”>”的命令直接捞出的User还不一样,更复杂也更强大。
  31. “2.3.1 :004 > g.user — User Load (0.1ms) SELECT “users”.* FROM “users” WHERE “users”.”id” = ? LIMIT ? [[“id”, 2], [“LIMIT”, 1]] — => #<User id: 2, email: “2@qq.com“, created_at: “2017-06-16 13:01:10”, updated_at: “2017-06-16 13:01:10”>” 还有 “2.3.1 :005 > g.members — User Load (0.1ms) SELECT “users”.* FROM “users” INNER JOIN “group_relationships” ON “users”.”id” = “group_relationships”.”user_id” WHERE “group_relationships”.”group_id” = ? [[“group_id”, 8]] — => #<ActiveRecord::Associations::CollectionProxy [#<User id: 1, email: “1@qq.com“, created_at: “2017-06-16 12:08:50”, updated_at: “2017-06-16 13:00:39”>]>”
  32. 关于数据的方法要在model里面定义,教材上的另一种解释:“is_member_of?(group) 为什么这一段要放在 User 的 model 里?因为它是要被 user 所使用的判断式”
  33. 所以要看对象选择写函数的地方,比如join!和quit!就写在user的model里,因为这个是user要进行的操作,而且是设计到数据库数据的操作。
  34. 在model的里定义了方法后,还要思考方法启动方式,这个工作是在controller里完成的,如果默认的7个action都不能作为调用途径的话,那么就需要新建另外的action,则需要设置routes和在controller写出对应的action。虽然使用rails console可以使用,但还是要考虑到网站作为面向对象的程序怎么给用户触发的问题。

####遗留问题

  1. render在Controller里和view里是否一样?

####涉及资源

  1. 网站:LOGDOWN;
  2. 网站:全栈营
  3. 网址:http://localhost:3000/rails/info/routes
  4. 网址:更多 scope 的用法:http://guides.rubyonrails.org/active_record_querying.html 和之前Rails第二课提供的查class的method的页面是一样的。果然method就是针对针对method的,也就是active_record。
  5. 网址:要去哪里才能知道,我想要的功能要用什么 gem 呢?*各种功能的gem一览: “RubyToolbox”:https://www.ruby-toolbox.com/

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

  1. rails console本质上其实是不需要view和controller而直接使用函数和对数据进行操作的地方。
  2. render的意义,在于回到前页,且数据保留不刷新,包括已经填写的表单数据。
  3. 可以不使用@而直接对数据库操作,比如Group.delete_all
  4. 在把上面的命令放在@groups = Group.all的下面,在主页依然没有数据,反映两个问题,要么@groups只是指向Group而已,要么程序运行顺序不是按语句从上到下的。
  5. 学习的速度感很重要,因为写ORID降低了学习的速度感是很不好的一件事情。
  6. 做事永远比总结重要,不要让总结影响做事的效率,要掌握好度。
  7. SQL语句可能倒着读能协助理解。
  8. 遇到程序问题是先想着有没有现场的解决方案,如果没有再分解再找,依次进行下去,最后的结果就是自己解决问题。

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

  • 遇到程序问题是先想着有没有现场的解决方案,如果没有再分解再找,依次进行下去,最后的结果就是自己解决问题。

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

  1. 写ORID写到有点厌烦,然后就不写了,毕竟心情愉快对坚持学习很重要。

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

  • 加深了对model的理解

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

  • 学习过程中容易疲劳,导致总学习时长不长。

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

  • 上午还行,下午开始感觉没有什么节奏感。

###明天有什么计划?

  1. ORID
  2. 全栈营

20170616学习纪录

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

  1. 写ORID
  2. 学习Rails第三课:Rails101第五章

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

  1. devise的使用知识在command line上面显示的很清楚
  2. 两个量建立连接其实是先给一个量插入另一个的主键,之后在设置对应的关联
  3. method分内建的功能和后建的,内建的又包括rails原有的以及GEM接入的。
  4. current_user 是 Devise 提供的“正在登入的当前用户”,你可以在 controller 或 view 里面使用它。model不能使用。
  5. !在函数或值前表示不等于,!current_user 表示“现在没有登入的用户”
  6. 要想在两个数据间建立关联,首先要选好主键,之后再设置外键,具体就是给被关联量插入主键XXX_id。先产生migration文件,再写入待插入列,最后rake db:migrate
  7. 建立关联需要在model里声明,通过has_many :xxxs 和 belongs_to :xxx。
  8. model里面是定义数据结构和数据method(供controller使用)
  9. @group.user = current_user里的.user不是.user_id,导致能有两者理解,第一种是.user_id可以省略_id。第二种是.user中的点表示关联,这个命令的意思是关联的用户是当前用户。
  10. 在使用url的时候,同时要送出verb类型,这个是routes的必须的,而且在不指定的时候,是有默认verb的,可能是get,就好比在浏览器直接输入地址。
  11. 而送出表单的时候,额外的,还需要同时传输表单数据吧?
  12. 创建者确认不需要在new和create中,因为不涉及确认问题啊。
  13. “ = ”是指派,“ == ”是等于“!= ”是不等于。

####遗留问题

  1. PUT和POST这个动作及数据传输在views页面上具体是怎么完成的???
  2. 有没有办法绕过views,直接create、update、destroy数据?

####涉及资源

  1. 网站:LOGDOWN;
  2. 网站:全栈营

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

  1. 写ORID的时候感觉有些疲惫,可能过度提取了,这样会产生厌恶感,要控制好这个分寸,不然会影响学习的热情。
  2. 安装devise的时候,意外的体会到其实命令窗已经给我们很多信息了,只是我们习惯性的往下走而不去看它。

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

  • 加深了对devise的理解

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

  • 学习的过程中感觉RESTful的应用还有些细节没弄明白。

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

  1. 知道什么是Action后,before_action就很好理解了。
  2. devise的安装提示里面就写了,要修改页面运行命令 rails g devise:views即可,命令窗还是给了我们很多信息的,这些显示出来的信息之所以会显示出来,是有原因的。
  3. devise安装好就可以用了,后面的只是设置权限和按钮页面等工作。
  4. 当年看电影还在想那些黑客怎么输入代码这么快,怎么记的?现在想明白了,他们就是在打英语啊,类似我们聊天那样,只不过他们是和及其聊天。
  5. 从find_group_and_check_permission的使用来看,private函数的声明是在先的,而且在before_action之前,不然他们将不能被before_action及action调用。

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

  • 命令窗口其实给了我们大量的信息。

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

  • 学习有点吃力。

###明天有什么计划?

  1. 写ORID
  2. 学习全栈营

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. 学全栈营

20170614学习纪录

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

  1. 写ORID
  2. 完成了Rails第三课:Rails101,前两节。

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

  1. 写ORID的时候还是要做一个当日笔记把闪念、知识点记下来
  2. emmet用得好的话可以提高效率
  3. emmet的基本符号有:> + ^ $ ( ) [ ] { } . #
  4. emmet中的#和.对应了css中的id和类
  5. emmet中通过tab键替换,加上返回键基本完善了编辑功能
  6. emmet过程中重点是要理解各个元素间的包含关系
  7. Dash这个应用可以作为常驻一屏来使用
  8. Spectacle让笔记本的屏幕起到了多屏的使用效率
  9. bootstrap是一个套件框架,包含了css和js
  10. 要使用bootstrap的css功能和js功能先要安装gem,之后在将相应的模块接入project的css和js里
  11. helpers里面的功能及代码
  12. Bootstrap是Web设计圈有名的CSS框架,提供了开发项目快速便利的元件素材,如按钮、下拉选单、表格等等样式。
  13. 在Rails上要帮项目穿上Bootstrap,用的是bootstrap-sass这个套件。
  14. option+G能快速输入©符号。
  15. bootstrap/alert是bootstrap的js提示套件
  16. 生成MVC的时候,从底层开始,即:M→C→V

####遗留问题

  1. 按票数排序,先插入票数column,设置初始值为零(这个没想好怎么做),之后票数变化对应的进行值更新,用教材的公司,update_attribute
  2. lash_class(key)的函数原理,以及怎么在rails c中测试它的值,及to_sym
  3. emmet有几个功能按照dash的说明没能成功。

####涉及资源

  1. 网站:LOGDOWN;
  2. 网站:全栈营
  3. 网站:heroku
  4. App:Dash
  5. Atom package:emmet

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

  1. 在学习使用emmet的时候,感慨自己之前怎么没有专门安排时间来学习一个它的使用。

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

  • 理解了flashes_helper的原理

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

  • emmet有几个功能按照dash的说明没能成功。

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

  1. 我们现在学习的工具和套件最简便的学习方式就是去他们的官网或者github上面查看使用说明,而dash就是把这些工具拉到本地来使用,反而特别好用。
  2. 很多工具朋友们之前都介绍了,但是没有自己真正消化,其实它们和自己一点关系都没有。

###今天有什么重要的领悟?

  • 我们现在学习的工具和套件最简便的学习方式就是去他们的官网或者github上面查看使用说明,而dash就是把这些工具拉到本地来使用,反而特别好用。

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

  • 为了提高效率学习了一些工具的使用。

###明天有什么计划?

  1. 写ORID;
  2. 学习全栈营;

20170613学习纪录

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

  1. 写ORID
  2. 完成了Rails第二课:初级练习

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

  1. 在rails里面,model对应active_record、controller对应action_controller、views对应action_view,而后两个合并起来又叫action_ pakge
  2. model是用来对数据库操作的
  3. class和集合类的命令都是适用于群体的
  4. @media是设置在不同的显示环境下适用的css
  5. youtube上面有很多的原理解释视频,简直是学习的宝库
  6. IRB(Interactive Ruby Shell)
  7. :pluralize前面的冒号表示这是一个方法或者函数,总之可以调用或是接上的意思
  8. method会取参数parameters(参数),表示它们要对那些参数操作。
  9. method也可以return(回传)资料。在Ruby里面,method会回传最后一行的结果,无论该结果是什么。
  10. scaffold(包括modle、view、controller)。可以理解成是database和人之间的操作媒介。
  11. generate scaffold 相当于打包了generate model,generate controller, generate view了。
  12. 空间模型应该理解有四成,加入database
  13. View会产生html来显示在浏览器,view档案是用ERB写的,它是一种样板语言(tamplate language),里面是html加上内嵌的ruby程序码。views里面的ruby的变数便是当使用者要浏览该页面的时候,所要填入的内容。(还有别样的样板语言,但是在railsbridge我们只用ERB。)
  14. Controller把objects在Model和View之间传来传去。
  15. 每一个URL都对应到Controller里面的某一个特定的method。
  16. 在这一步骤以后,当你打开你应用程式里面的任何一个页面,该请求(request)会被某个Controller的method处理。
  17. 当我们把Model、Views、Controllers放在一起的时候,他们会遵循以下的模式:
  18. 给一个Url,Rails会去检查要使用哪一个Controller里面的method(又称为“Action”)。Controller Action会去呼叫Model里面对应的methods。Model会去读写资料库,然后把包含资料的object回传到Controller。Controller会拿到这个object并且丢到View里面。Action通常会有对应的View档案,Rails会自动寻找并使用它。)
  19. Scaffold展示的就是一个最基础的CRUD(new topic, show, edit, destroy)
  20. root “topics#index” 中的除了#index的写法外还有没有其他的参数?
  21. routes定义的是启动controller(action)的名称、调用路径、使用方法及需要的参数列表。
  22. <%= link_to topic.title, topic %>也可以打成<%= link_to topic.title, topic_path(topic) %>,后一种方式更好理解(我的自己想出来的做法),前一种简洁(教材上的做法),貌似路径名和当前的object名相同的时候才能使用后一种方法,而且默认方法是GET,因为edit_topic就不能用后一种方法写。
  23. View的文件夹是生成controller时候同时生成的,touch只是创建里面的子文件。

####遗留问题

  1. 按票数排序,先插入票数column,设置初始值为零(这个没想好怎么做),之后票数变化对应的进行值更新,用教材的公司,update_attribute

####涉及资源

  1. 网站:LOGDOWN;
  2. 网站:全栈营
  3. 网站:heroku
  4. 网页:Active Record Query Interface的资源页

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

  1. 早上没吃早饭,明显感觉到在写ORID的时候的缺能量感
  2. 吃完饭后,觉得有点疲劳,然后来了罐可乐开始学习很快疲劳感就没了
  3. 下午连着学几个小时的程序后,感觉有些恶心感,就安排了休息。

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

  • 程序学习的时候效率非常高

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

  • 下午连着学几个小时的程序后,感觉有些恶心感

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

  1. 解决程序问题的时候重要是解决问题,不要太执着与一定要用什么办法解决,先把问题解决了,再来完善方法。

###今天有什么重要的领悟?

  • 解决程序问题的时候重要是解决问题,不要太执着与一定要用什么办法解决,先把问题解决了,再来完善方法。

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

  • 有计划、有意外,保持平静才能更好的应对突发状况,不然很容易放飞情绪。

###明天有什么计划?

  1. 写ORID;
  2. 学习全栈营;

20170610学习纪录

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

  1. 复习了全栈营VIP入学手册和Rails第一课:环境建置
  2. 写ORID

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

  1. Rails是通过rubygems.org安装的,这么算来rails是当作gem来被ruby使用咯?而且rubygems的地址是通过RVM来指定?在安装ruby时是通过RVM,而并非GEM,但教材中出现若ruby安装不成功是,则将ruby源改成改成中国的,意思就是安装ruby的来源其实也还是gem。
  2. 而ruby是通过RVM安装的,而不是通过ruby官网,因为需要版本控制。
  3. Homebrew和rvm的安装方式相似,很像是从远处拷贝过来,然后在本地安装。
  4. 通过 herouku logs 命令可以查看错误heroku上面运行的错误信息。

####遗留问题

####涉及资源

  1. 网站:全栈营
  2. 网站:LOGDOWN;

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

  1. 因为是复习旧知识所以比较轻松,初始加速度较快,感觉进入了状态。
  2. 学习完rails第一课的时候有些疲劳,就开了个电影放松,就想着不长,结果一看两个半小时。。想了想看就看了,就看完吧,结果后面梁璐打电话过来,最后还是没看完。

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

  • 复习的时候很快回想起了原来学习过的知识。

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

  • 学习完两个全栈课程后,有点疲劳,状态下降。

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

  1. 流利说可以一天学一个新课,复习一个卡片,然后刷一个满星。
  2. Homebrew确实是一个便利的工具。

###今天有什么重要的领悟?

  • 英语的提高对编程学习确实有很大的帮助作用。

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

  • 从头开始复习全栈的课程,发现学习的速度比之前确实快了很多。

###明天有什么计划?

  1. 写ORID;
  2. 学习全栈营;

20170609学习纪录

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

  1. 看完了LOGDOWN的笔记
  2. 整理了下印象云笔记
  3. 整理的下近段时间的ORID。

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

####遗留问题

####涉及资源

  1. 网页:LOGDOWN;
  2. APP:印象云笔记

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

  1. 花了几天终于把LOGDOWN的内容看了一遍,算是继续学习编程的热身,不得不说一下看这么多文章还怪挺累,看的过程中经常会有厌烦的情绪,碰到这种情况,只能暂停下来,等一会再接着看。

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

  • 在看到logdown最新的几篇时,心流了。

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

  • 看文章过程中有几次脑袋空白,看不下去。

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

  1. ORID可以写一份总的,然后把技术部分提出来放到技术博客上面去。
  2. ORID可以分两天写,当天写主要部分,第二天再补充,包括当天写完后面的事情,还有一些另外的想法。
  3. 即便是写ORID也不能代表不用复习。

###今天有什么重要的领悟?

  • 即便是写ORID也不能代表不用复习。

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

  • 完成了之前的学习博客的阅读,回到学习编程的正轨上来,正是进入辞职后的第三阶段——就业技能储备阶段。

###明天有什么计划?

  1. 从头开始过一遍全栈营的课程
  2. 写ORID

2017年第12周总结

1.“本周学到的最棒概念/工具”

本周学到的最棒的工具是流利说,之前在玩swiftplayground的时候,屡屡被解说的英文打断积极性,在使用了一周的流利说后,轻松完成swiftplayground的学习任务;

2.“本周遇到最大的坑”

本周遇到的最大的坑是没运动、没运动、没运动。从开始学习全栈营后,就停止了原先的跑步习惯,第一个月的时候身体出现了神经衰弱,以为是没休息好。之后,睡眠时间越来越长,但是白天的状态也越来越差,直到最近才意识到这个问题,自己可能是因为没运动亚健康了,之后运动了一晚,果然第二天状态就好了很多,再之后有时像以前一样有时谁6个小时也没什么大问题。

编程作业:什么是ActiveJob

####1 简介
Active Job 是用来声明任务,并把任务放到多种多样的队列后台中执行的框架。从定期地安排清理,费用账单到发送邮件,任何事情都可以是任务。任何可以切分为小的单元和并行执行的任务都可以用 Active Job 来执行。

####2 Active Job 的目标
主要是确保所有的 Rails 程序有一致任务框架,即便是以 “立即执行”的形式存在。然后可以基于 Active Job 来新建框架功能和其他的 RubyGems, 而不用担心多种任务后台,比如 Dalayed Job 和 Resque 之间 API 的差异。之后,选择队列后台更多会变成运维方面的考虑,这样就能切换后台而无需重写任务代码。

编程作业:什么是巢状表单

指的是在一个model里面添加数据的时候,相关的其他model里面也会增加几笔数据,这几个model间就是巢状关联,我们形成的数据表就是巢状表单。

编程作业:什么是session

在计算机科学领域来说,尤其是在网络领域,会话(session)是一种持久网络协议,在用户(或用户代理)端和服务器端之间创建关联,从而起到交换数据包的作用机制,session在网络协议(例如telnet或FTP)中是非常重要的部分。

在不包含会话层(例如UDP)或者是无法长时间驻留会话层(例如HTTP)的传输协议中,会话的维持需要依靠在传输数据中的高级别程序。例如,在浏览器和远程主机之间的HTTP传输中,HTTP cookie就会被用来包含一些相关的信息,例如session ID,参数和权限信息等。

2017年第11周总结

1.“本周学到的最棒概念/工具”

本周学到的最棒的工具是轻松冥想,上周李思成分享的工具,使用以后发现坐享效果很好,真的好。

2.“本周遇到最大的坑”

本周遇到的最大的坑是ORID的情绪纪录,周一在Xdite老师的直播里老师提到有个同学通过两个月写orid纪录情绪后,对自己的情绪掌控提高了很多,才发现自己之前写的orid忽略了感知情绪的这一块。

编程套路:Rename heroku repo的方法

###重命名heroku repo名称的方法有两种,一种是在网页里设置,另一种是在command里设置,方法来源:https://devcenter.heroku.com/articles/renaming-apps#updating-git-remotes。具体如下:
####一、在网页里设置
1、现在heroku对应的专案页面中的settings的name中修改;
2、因为远端的名称修改,本地的远方地址需要重新设置;
3、执行

1
2
3
git remote rm heroku
git remote -v
git remote add heroku https://git.heroku.com/XXXXX.git(XXXXX是heroku名字,在heroku网页中可以查)

4、或者可以执行:

1
2
git remote rm heroku
heroku git:remote -a newname

####二、在iterm里设置
使用命令:

1
heroku apps:rename newname

如果不行,可再执行一中的步骤4;