20170620学习纪录

##Objective ###今天做了什么? 完成了rails101附加作业 ###关于今天的学习,你记得什么? ####新旧知识 namespace就是域名空间,和资源不同,它没有具体的action,知识一个名字,所以和同层级的资源是并列关系。 调用经过中间表连接的数据时,使用的不是source名称,使用的是在model里面定义的名称。 will_paginate的使用方法有三步,安装、controller使用,页面加上页标。 面向对象的话,可以理解视觉限制和行为限制还有数据结构控制,分别通过view和controller还有model设限制。 ####遗留问题 无 ####涉及资源 网站:全栈营 ##Interpretive ###我们今天学到了什么? 要注意区分push github和heroku 的命令。 ###今天有什么重要的领悟? ####编程知识 总结will_paginate的使用方法有三步,安装、controller使用,页面加上页标。 ##Reflective ###你要如何形容今天的情绪? 晚上头疼,已经有段时间没有这感觉了,可能需要休息了。 ###今天的高峰是什么? 完成了作业。 ###今天的低点是什么? 头疼,学习学不下去。 ##Decisional ###我们会如何用几句话形容今天? 在解决了一件脱了很久的事情,把作业完成了。。 ###明天有什么计划? 写ORID 学习全栈营。

June 21, 2017

20170619学习纪录

##Objective ###今天做了什么? 写ORID 学习全栈营 开始做rails101的附加作业。 ###关于今天的学习,你记得什么? ####新旧知识 无 ####遗留问题 无 ####涉及资源 网站:LOGDOWN; 网站:全栈营 ##Interpretive ###我们今天学到了什么? 理财的重点不在具体花了多少钱,而在于你还有多少钱,大体花了多少钱。 涉及到新安装GEM的,不止在bundle install后重开 rails s,在设计到相关安装的命令的时候也一样要重开rails s。 教材里的“before_action 后面加的往往是一个 controller 内的 method”说明了controller的action也叫controller的method .destroy_all和delete_all是alixs 把“权限检查”的代码,套用到 update / destroy 上说明两个问题,第一是可以不通过edit来启动update因为前面edit已经设置权限了,这表明可以伪造表单来传送。第二,说明在程序码里面还是按顺序来进行运算的,因为这段代码在保存的那段之上。 在生成post的new的时候需要group是因为,的后面的create的时候需要页面提供group来确定关系,所以虽然在显示这一步不需要,但还是要提供。 拿数据是ror的一个重要内容。 has_many :participated_groups和has_many :members的红色字部分实测可以自己任意取名字。 ###今天有什么重要的领悟? ####编程知识 拿数据是ror的一个重要内容。 ##Reflective ###你要如何形容今天的情绪? 今天出门办事虽然过程复杂,但是情绪平稳。 ###今天的高峰是什么? 做附加作业的时候速度很快 ###今天的低点是什么? 做的太快,过程中出现了一些小bug,后已修复。 ##Decisional ###我们会如何用几句话形容今天? 办事的缘故,今天的进度不多。 ###明天有什么计划? 全栈营 ORID

June 21, 2017

20170618学习纪录

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

June 19, 2017

20170617学习纪录

##Objective ###今天做了什么? 写ORID 全栈营学习:Rails第三课:Rails101的第六章和部分第七章 和广州Meetup的小伙伴们进行购书交流 ###关于今天的学习,你记得什么? ####新旧知识 关于数据的method是在model里面定义的,并且在view里面又可以使用,比如我们的群成员判断功能。 当要定义多对多关系是一定要使用中间表,通过中间表的两个一对多完成多对多功能 在完成好了多对多的关联后,还要写清楚多对多的两个量的关系,也就是谁是谁的成员,又是谁加入了谁 No route matches [GET] “/groups/1/posts/new”,如前面说的,方法+路径。 教材题目是设计 Post 的 model 架构,设计model就是设计架构吗? routes是定义资源调用地址的,资源需要你写,但写出来要使用的话还要给他们赋予一个地址 resources :groups do – resources :posts – end就是一种定义地址的方式 数据关联是在model里面设置的,action在controller里面也已经有了,view也是匹配的controller,而controller的文件夹,gourps和posts是并列的,所以这个路径地址实际上影响的只是url。 数据关联的另一个意义,可能还是在于参数绑定,比如:group和post的id同时获取,那么就是post的id在group的id的名下。 命名规则相当于用group_post替代了group 另外还有第八个动作PATCH,但它和PUT一样都是update功能。是同名还是同功能? 命令git commit -m “add posts nested route”中的,nested意思就是数据关联其实就是巢状链接?nested route的意思是,这个uri了带有关联关系吧? :only => [:new, :create]和only: [:new, :create]等效。多参数就加上中括号,若果只有一个参数就不用中括号,其他的一样。 在post里@group = Group.find(params[:group_id])的写法是:group_id,而在group里的写法是:id。是否在每个对象里:id默认是自己model的id,而XXX_id则是你要调用的其他model的标准写法? 可能在@post.group = @group及@post.user = current_user这类写法里,group和user和group_id和user_id是等效的吧,就像人和身份证号。 用group_path(@group)而不用group_posts_path(@group),那是因为前者的页面已经包含了我们的信息,而且这样可以少一个post的index的action。 @posts = @group.posts表示一旦建立了数据关联,就可以轻松调用。 method除了是“程序语句”,还可以同时是“功能叙述”。比如,.order(“created_at DESC”)用.recent代替。 Scope是Rails 里面的一个内建 API可以用来包装一些查询式,让代码更直观一些。你可以想像成,拿来包装“常用 query”的方法。 scope是在model里面定义,表明controller里面使用的关于数据的方法应该就是model的方法。 教材的解释,应征了前面关于model和dababase交互的理解。rails的ActiveRecord框架帮我们完成了翻译,下面一句话摘自教材。 教材:“实际上呢,Model 里面的所有语句,看起来是“Ruby 语句”,实际上是 Rails 帮我们“翻译”成为了数据库语句。(这一套叫 ActiveRecord 框架)” 不单单是命令窗的指令输入的返回文字有意义,rails s的运行log也有很多有用信息。 “因为数据库语句也是个“巨坑”,Rails 开发的目的,在于希望程序员专注于“产品”的逻辑设计,而花上少一点时间去纠缠非常底层的细节。在刚开始学习过程中,其实你是不太需要去纠结数据库语句的,大部份你想要捞的数据,ActiveRecord 都能帮你搞定,而且可以“形容”的非常“口语”。” 推送上heroku的程序,不需要bundle install,但是需要heroku run rake db:migrate 要去哪里才能知道,我想要的功能要用什么 gem 呢?*各种功能的gem一览: “RubyToolbox” 涉及到多对多的关系是,就需要建立个中间表,明确完三个表之间的关系后。还要通过命令明确主从关系,比如,教材:“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的。 建立联系后,就可以通过activerecord去捞出数据。这个实现了比主从键直接捞数据更复杂的功能。 “=> #<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去捞出来。 这个与“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还不一样,更复杂也更强大。 “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”>]>” 关于数据的方法要在model里面定义,教材上的另一种解释:“is_member_of?(group) 为什么这一段要放在 User 的 model 里?因为它是要被 user 所使用的判断式” 所以要看对象选择写函数的地方,比如join!和quit!就写在user的model里,因为这个是user要进行的操作,而且是设计到数据库数据的操作。 在model的里定义了方法后,还要思考方法启动方式,这个工作是在controller里完成的,如果默认的7个action都不能作为调用途径的话,那么就需要新建另外的action,则需要设置routes和在controller写出对应的action。虽然使用rails console可以使用,但还是要考虑到网站作为面向对象的程序怎么给用户触发的问题。 ####遗留问题 ...

June 18, 2017

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

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

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

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

June 15, 2017

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

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

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

June 14, 2017

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)的名称、调用路径、使用方法及需要的参数列表。 View的文件夹是生成controller时候同时生成的,touch只是创建里面的子文件。 ####遗留问题 按票数排序,先插入票数column,设置初始值为零(这个没想好怎么做),之后票数变化对应的进行值更新,用教材的公司,update_attribute ####涉及资源 网站:LOGDOWN; 网站:全栈营 网站:heroku 网页:Active Record Query Interface的资源页 ##Reflective ###你要如何形容今天的情绪? 早上没吃早饭,明显感觉到在写ORID的时候的缺能量感 吃完饭后,觉得有点疲劳,然后来了罐可乐开始学习很快疲劳感就没了 下午连着学几个小时的程序后,感觉有些恶心感,就安排了休息。 ###今天的高峰是什么? 程序学习的时候效率非常高 ###今天的低点是什么? 下午连着学几个小时的程序后,感觉有些恶心感 ##Interpretive ###我们今天学到了什么? ...

June 14, 2017