2017年第08周总结

1.“本周学到的最棒概念/工具” 本周学到的最棒的工具是通过github去查看其它同学的功能实现过程,之前只知道去上面查看同学的代码,但这周通过做merge的主程后发现可以通过compare去比对代码的过程,进而发现了可以通过clone同学的代码到本地再推送想要了解功能的分支到git上compare比对代码,最后在meetup交流过程中同学们指出直接就可以在commit里面查看更新代码,而不需要clone下来。 2.“本周遇到最大的坑” 本周遇到的最大的坑是在加入新的gem后bundle install,没有重启rails s,以前根据教材进行都会进行这一步,但这次创意大赛进行的功能编写就忽略了这一点,花了一个多快两个小时才在stack flow上找到了答案。

February 26, 2017 · 1 min

20170224学习纪录

##Objective ###关于今天的课程,你记得什么? ####新旧知识 1、通过_id关联起来的两个量,当通过主键量对关联对象进行赋值时,和主键量对自己的单一量赋值不同,可以进行数组赋值,通过使用【】符号来实现,例如 <%= f.file_field :image, :multiple => true, name: "templatephotos[image][]" %>("请上传5张图片")<br> 2、可以在主键量中通过 accepts_nested_attributes_for :templatephotos private def template_params params.require(:template).permit(:title, :description, :price, :version, :proportion, templatephoto_attributes: [:image, :id]) end 一对语句进行赋值确认,即对templatephotos赋值前必须先对template的指进行确认; 3、bundle install后一定要重启rails s; 4、imagemagick是mac的环境工具,而不是rails的套件工具; 5、mini_magick是用来进行图片大小调整的carrierwave的相关套件; 6、在uploader里面设置的 process resize_to_fit: [800, 800] version :thumb do process resize_to_fill: [200, 200] end version :medium do process resize_to_fill: [400, 400] end 相当于上传时就对图片进行了切割,生成了相应的三个文件,而不是调用的时候进行相应的调整; 7、gem有直接作用的,也有作为其他gem的套件工作的; ####遗留问题 1、多图上传究竟是paperclip起了作用,还是carrierwave起了作用,还是共同起了作用? 2、对变量进行数组赋值时的相关知识; ####涉及资源 1、GEM paperclip; ###完成了什么? 1、研究出了多图上传功能; ##Reflective ###你要如何形容今天的情绪? 今天有着明确的目标要完成两个功能,摸索过程相当的烧脑,伴随着强烈的酥麻感,通过不断调整呼吸一步步琢磨,最后功夫不负有心人,结果出来的时候相当愉悦。 ###今天的高峰是什么? 通过同学的github和网上零散的资料拼凑出了想要的功能; ###今天的低点是什么? 学习过程中有几次因为学习过程的酥麻感过于强烈开了小差。 ##Interpretive ###我们今天学到了什么? 1、通过同学的github代码和对应的commit可以理清他完成这个功能的步骤,及进行模仿; 2、学习过程中大脑的酥麻感越强烈,学习效果越好,这与心理学上的痛苦遗忘定律不冲突,心理学上的痛苦本质上是指情绪痛苦,而非进步痛苦,相反进步痛苦会记忆的更长远; 3、gem可以自己去找,不一定要模仿别人的来使用,不过时间有限的情况下,还是模仿来的最快; 4、学习的过程最好边学边动手,这样能大大加深理解,对应编程就可以新建一个git分支来实操; 5、gem本质上也是一组封装的代码,可以自己写,也可以打开它来自己定制调配; ###今天一个重要的领悟是什么? ####学习方法 学习摸索的过程尽量调用多的感官,这样有利于理解。 ####编程知识 多图上传的方法; ##Decisional ###我们会如何用一句话形容今天的工作? 初步取得上传多图研究成果; ###有哪些工作需要明天继续努力? 部署七牛云的网络图片功能; ...

February 25, 2017 · 1 min

编程套路:ROR实现product上传多图的步骤

##以商店product添加多图为例 ###paperclip Step 1 gem 'paperclip' bundle install 重开rails s Step 2 修改app/models/product.rb,加入 has_attached_file :image, styles: { medium: "300x300>", thumb: "100x100>" }, default_url: "/images/:style/missing.png" #这一行可不要# validates_attachment_content_type :image, content_type: /\Aimage\/.*\Z/ Step 3 rails generate paperclip product image 确认生成的XXXXXXX_add_attachment_image_to_products.rb如下 class AddAttachmentImageToProducts < ActiveRecord::Migration def self.up change_table :products do |t| t.attachment :image end end def self.down remove_attachment :products, :image end end rake db:migrate Step 4 在app/views/admin/product相关页面加入如下 +<div> +<%= f.input :image, as: :file %> +</div> Step 5 修改app/controllers/admin/products_controller如下 private def product_params params.require(:product).permit(:title, :description, :quantity, :price, :image) #:image加入參數 end Step 6 图片调用方法 <%= image_tag @user.avatar.url %> <%= image_tag @user.avatar.url(:medium) %> <%= image_tag @user.avatar.url(:thumb) %> carrierwave(我第一次实操的时候上面的paperclip和这个都进行了操作,所以不知道最后是那个起了作用,因而可以分开实验下) Step 1 +gem 'carrierwave' +gem 'mini_magick' bundle install Step 2 $ convert -version $ brew install imagemagick Step 3 $ rails g uploader image $ rails g model photo product_id:integer image:string $ rake db:migrate Step 4 接著Photo中加入關係與mount_uploader ...

February 25, 2017 · 3 min

错误纪录:bundle install后没有重开rails s

错误日期:2017年2月24日 具体情况: 在进行购物网站创意大赛过程中,在安装完paperclip且bundle install后没有重开rails s,造成显示no method报错。

February 25, 2017 · 1 min

20170223学习纪录

##Objective ###关于今天的课程,你记得什么? 1、程序环境有两种,一种是develop环境,指我们本地开发,另一种是product环境,指上传到服务器上,比如heroku; 2、在uploader中,本地调试显示图片用,file,云图片用fog; 3、七牛云和阿里云都是国内的云; 4、template是计算机领域的模板的意思; 5、gitmerge的原理可能是,把相应时间纪录的变动信息合并到程序里面; 6、在cart_item里面设置,product_id和user_id而不在product设置的意义在于一个product可以放在多个item里,而不是一个product对应多个item; 7、sqtile3和pg分别是developer和production用的数据库gem; 8、后面的学习进度会开始放缓; 9、编程使用的英语就两百个单词而已; 10、gem是套件管理系统; 11、助教的工作有时间可以试着申请下; 12、学习不用急; 13、recaptcha验证功能; 14、linodo可以通过阿里云买; 15、rails cust这个网站gem网站; 16、RubyFlow:Rails的社群; 17、Go Rails这个网站; ###完成了什么? 1、看了YY老师的直播; 2、完成了template的讨论和基本的view、model及controller; ##Reflective ###你要如何形容今天的情绪? 今晚进入了长时间的心流,不知不觉一晚上就没了。 ###今天的高峰是什么? 参照教材迅速完成了template的编写; ###今天的低点是什么? 学习到太晚了,没有时间继续完成五张图片的上传这个设置; ##Interpretive ###我们今天学到了什么? 1、要多到国外的rails社群去学习; 2、要注意不同环境的配置问题; 3、后面的学习速度会放缓,当时自己要加紧安排; 4、在注意力充分使用后,根本不会出现想学这个想学那个都没时间的情况,因为你连思考这个问题的时间都没有; 5、项目合作的时候一定要考虑项目进度分配问题,这样能提高总体的时间利用率,而不至于一个人等另一个人; ###今天一个重要的领悟是什么? ####学习方法 要多泡在相关社群里面学习; ####编程知识 根据环境使用不同的gem; ##Decisional ###我们会如何用一句话形容今天的工作? 还有一周一点的时间,开始真正的攻坚了。 ###有哪些工作需要明天继续努力? 完成上传五张图片的功能及七牛云的设置;

February 24, 2017 · 1 min

2017年第07周总结

1.“本周学到的最棒概念/工具” 本周学到的最棒的工具是model/controller/views的三维空间模型,这是我在学习过程中尝试去理解关系想象出来的模型,通过使用它感觉一下子明白了,出发,显示,调用这些东西,有时间我还会尝试用它去理解restful。 2.“本周遇到最大的坑” 本周遇到的最大的坑是每给自己创造良好的学习环境,放假在家,受到各种干扰,现在后面才意识到自己应该主动点去咖啡厅之类的地方的,而不是被动的在家里忍受注意力的缺失。

February 23, 2017 · 1 min

20170222学习纪录

##Objective ###关于今天的课程,你记得什么? 1、安全是编程过程中涉及到敏感信息是第一个要考虑的因素; 2、本地的图片无法大量上传到heroku,也就是heroku只提供了程序架构和代码上传服务,没有提供图片上传及邮件发送等服务; 3、不同的服务有不同的提供商,编程界天生就是一个相互协作的业界,你用别人的服务就需要付钱,你为别人提供服务就能收钱; 4、database.yml这个文件是不上传的,在gitignore里面需要设置不追踪它,我们平时的私密信息就放在这里面; 5、教材提供的database.yml.example其实一个可以上传的事例,我们下载以后cp出对应的文件就可以继续使用数据库,通过这样的方式及保护了隐秘信息又保证了程序可以继续运行; 6、电脑版微信可以语音; 7、azs 3很容易丢失自己的私密信息,一定要谨慎! 8、不要将自己的私密信息方法carrierwavr.rb里; 9、Figaro这个工具,密码用它管理 10、ENV环境变数; 10、Github提供了非常便捷和合作可能,具体合作的步骤如下: - step 0 :找到队友、确定谁做主程,主程复制merge pull request; - step 1 :添加队友,主程在项目的repo里的setting>collaborators>根据队友的githubid查找队友,并按add collaborators发出邀请; - step 2 :队友会在自己注册的github邮箱里收到邀请消息,点解view invitation后,可通过Accept invitation接受邀请成为队友,之后就可以在自己的github页面看到以主程名开头的repo; - step 3 :主程先git checkout master切换到master分支,后把最新的分支merge到master上,例如:git merge story5,之后git push origin master,到服务器; - step 4 :队友第一次下载项目是由git clone repo地址,之后bundle install,以及rake db:migrate,以后有新的分支都事先切换到master分支,然后git pull origin master,之后生成新的分支进行修改功能。如果列表的栏位发生了变化,则需要调用rake db三兄弟类; - step 5 :新建分支进行新的功能编写,使用命令 git checkout -b name-function(姓名-功能); - step 6 :完成功能并确认无误后,将最新的分支推上repo,git add . git commit -m “功能描述” git push origin name-function; - step 7 :打开项目repo,选中自己刚刚上传的分支,通过compare & pull request,确认base:master,compare:name-function后,添加描述(可不添加),点击create pull request(副程千万不能点击merge pull request); - step 8 :若无冲突提示,则主程可在repo点击 Pull merge页标,点击merge pull request,之后Confirm merge就可以了,若有提示则可在本地修改无误后重新上传分支,也可通过Resolve conflict修复; - step 9 :修复时会有««« »»»>master ========三行代码,处理完所有分之后可点击make as resolved。所有完成后会显示Resolved all conflict并点击commit changes,这时和step 8 一样; ...

February 23, 2017 · 1 min

20170220学习纪录

##Objective ###关于今天的课程,你记得什么? 1、case with语句用于多分支比较理想; 2、admin里面的controller对应于具备valited的对象才能用,因而避免了其它非admin用户执行操作; 3、组队学习非常重要,能锻炼人的写作能力; 4、一定要去参加商店大赛,这个将来讲作为求职经历来讲; 5、ruby中国是中国ruby届的平台,上面有对应的ruby求职信息; 6、后期课程讲会分化出两个大方向,一个是面向准备创业的同学,一个是提供给准备进阶更高级的程序员; 7、后期会提供简历编写指南; 8、在北京的meetup上xdite老师回答了一些就业的问题,费贲将相关三篇的meetup总结发到了共享群上; 9、Mailer其实和controller有些类似,可以理解是变异了的controller; 10、mailer的启动方式是通过controller,而后再调用相应的页面,使用的语句是OrderMailer.xxxxx()·deliver!; 11、OrderMailer是生成时的命名,不一定要是order也可以是其它的对象; 12、ruyb china是一个交流和求职的好网站; 13、Orid一定要按时写,一定要按时交; ###完成了什么? 1、按照老师的教程,重做了一边第三周作业; 2、挺了Xdite老师的第一次复盘直播; ##Reflective ###你要如何形容今天的情绪? 看了老师的直播,感触自己在组队这件事情上有思想落后了,羞愧之下和感到了广州的Meetup群里面看看还有没有落单的队友,然后进行了组队,要提高干劲才行! ###今天的高峰是什么? 找到了队友!!! ###今天的低点是什么? 没有按计划完成作业任务; ##Interpretive ###我们今天学到了什么? 1、组队是一种非常有效的学习方式,这是以前的我所不能理解的,一定要积极组队; 2、有时间的话要多去ruby各大门户网站逛逛; 3、基础知识、项目、合作经验、技术博客这是招聘的硬基础; 4、具体组队的时候发现了很多没想过的问题,这正是需要组队的意义; ###今天一个重要的领悟是什么? ####学习方法 组队不单是学习到好方式,也是现代协作社会要求的硬技能; ####编程知识 case with这个分支功能; ##Decisional ###我们会如何用一句话形容今天的工作? 学习进度有点慢,但是终于完成了组队工作; ###有哪些工作需要明天继续努力? 学会如何通过GitHub合作;

February 23, 2017 · 1 min

20170219学习纪录

Objective 关于今天的课程,你记得什么? 1、model里面的event和一般方法一样可以调用,而且调用时在时间后增加!不影响使用; 2、路径的调用在任何一个views里面都可以,知识要弄清楚自己所使用的路径,还有需要传递的参数; 3、rake routes里面的:id是说要传递参数,但是并没有指明具体需要传递那个参数; 完成了什么? 独立完成了第三周的作业任务 Reflective 你要如何形容今天的情绪? 今天情绪平稳,虽然练习断断续续,但是能自己把作业给解出来,而且过程思路清晰,很高兴自己开始能融会贯通了。 今天的高峰是什么? 独立解作业的时候思路非常清晰,并没有之前的那种绞尽脑汁的感觉。 今天的低点是什么? 练习量还是太低了。 Interpretive 我们今天学到了什么? 1、通过看广州伙伴们的meetup分享学习了几个实用的快捷键和atom功能; 2、routes是动作的启动方式; 3、gem和packge的很好的工具,有时间的时候可以去多探索探索; 4、学到好的工具一定要第一时间拿起来用,要成为一个“工具癖”; 5、做网页的时候要用运算想象力,想象自己要实现的功能具体操作的时候是怎么样的; 今天一个重要的领悟是什么? ####学习方法 要学着自己写教材,教就是最好的学,而写教材是教当中的第一步,也是和写作相结合在一起的一步,可以理清自己的做事步骤和套路 ####编程知识 理解了routes的本质,想实现动作或者打开网页的时候,就是通过routes来定义这个过程的触发链路的。 Decisional 我们会如何用一句话形容今天的工作? 感觉自己的思路清晰了非常多。 有哪些工作需要明天继续努力? 完成购物网站的学习;

February 20, 2017 · 1 min

20170217学习纪录

Objective 关于今天的课程,你记得什么? 1、新建的mailer这个新对象; 2、GEM letter_open; 3、GEM aasm; 4、状态机这个概念,本质上只是一个存储状态的列及相应的转换触发命令; 5、deliver!是打开新页面的命令; 6、event为事件的定义; 完成了什么? 完成了购物网站的课程学习; Reflective 你要如何形容今天的情绪? 在家里还是干扰太大,学习始终无法进入状态,还好还有几天就不在家了; 今天的高峰是什么? 状态机这一块很好的理解了; 今天的低点是什么? 学习状态屡屡被老姐打断; Interpretive 我们今天学到了什么? 1、站内信; 2、状态机; 3、event的设定 今天一个重要的领悟是什么? ####学习方法 学习环境真的很重要; ####编程知识 状态机这个机制是非常重要的一个工具 Decisional 我们会如何用一句话形容今天的工作? 哎,效率低下。 有哪些工作需要明天继续努力? 休息一下。

February 19, 2017 · 1 min