02 2016 档案
摘要:Linux目录树结构 .表示当前目录 ..表示上层目录 隐藏目录或者隐藏文件名以.开始 进入目录使用cd命令(cd 全称就是change directory),尾部加不加/都可以: cd zehua(或者cd zehua/) cd ..(或者cd ../ 作用是返回上层目录) 我们进入目录zehua之后怎么进入同级目录ZEHUA?cd ../ZEHUA(cd ../ZE...
阅读全文
摘要:Rails的快捷最主要归功于ruby语言的特性,这个快速入门始终是入门而已。想要学好rails还是需要打好ruby基础,不要rails的进阶那些,没有良好的ruby基础是学不好的。 Rails涉及的coffeescript和scss都是基于javascript和css的,我们要先进一步熟悉javascript和css这样用起来就很方便了,因为这两个就是简单地修改了用法使得开发更加快捷而已。
阅读全文
摘要:自动化测试好处之一是保证功能的可用性,比如调用的一些接口变了或者数据结构变了我们不知道,有了测试就能很快发现这些问题,否则产品上线之后会有很多潜在的问题比如用户使用这个功能的时候才发现这个功能不能用了。 测试的第二个好处是测试重构是否存在问题(重构就是功能不变,代码结构改变)。重构不管你怎么重构,只要通过测试就说明功能没有问题。 写测试主要分两种,先写功能或者先写测试: 1...
阅读全文
摘要:这节课我们讲解Bundle的构建和Gemfile的使用方法。之前我们只是两句话代码,这节课我们进一步来讲解: 什么事bundler? 是rails应用程序中对gem依赖包进行管理的一种管理工具。它会根据Gemfile中的设置自动下载及安装对应的gem套件并且能够帮我们解决不同套件之间的依存关系。同时它能够使得程序在不同的部署环境中使用的所有依赖包的版本都能够保持一致(因为Gemfile里面就作...
阅读全文
摘要:Rails运行环境配置的不同可以分为三种模式:开发模式、测试模式、生产模式。 开发模式就是程序还在开发期间进行使用。测试模式就是对程序进行测试使用。生产模式就是在网站实际上线的时候使用。这三种不同的模式肯定有对应不同的运行环境配置,它都放在了工程目录下的 三种模式对应文件位置如下: 当你运行某一种模式的时候,rails就会自动加载对应的配置文件。当然修改运行环境的方法...
阅读全文
摘要:还有上节课其他页面的form也是字体红色,如下: 有一个问题,一个大一点的网站可能一个页面需要加载的coffee文件和scss文件会很多,那么加载页面的时候页面就会不断地向服务器发送请求去加载这些前端文件,如果这些文件很多就会影响页面呈现的速度。而rails也考虑到这点,帮我们做了很多前端优化的工作,就是利用Assets Pipeline进行前端优化: Rails通过Assets...
阅读全文
摘要:在上节课我们rails中使用coffeescript虽然有问题,但是这个跟系统是windows估计有关,不过我们可以先用每个页面去写普通的script标签就行了。下面讲解css样式在网页开发中的作用,因为我们前面只是简单的html页面代码所以页面就很简陋,而为了提高用户体验美化页面就用到了css样式,下面我们讲解一般的css使用: 我们以sessions控制器的new也就是登陆页面为例: 我们...
阅读全文
摘要:这节课讲解前端脚本语言(以前学过的javascript)的使用方法,并且在微博应用中使用简单的脚本语言进行简单开发(指使用javascript给前端页面添加动态效果)和测试。 我们可以直接在html页面直接嵌入js语言,rails中也可以这样做。 我们怎么在上面的页面中嵌入js呢?其实都一个套路,在最下面添加一个脚本语言的标签叫script,类型写javascript说明是使用的动态脚本语...
阅读全文
摘要:前面我们讲的link_to、form_for、form_tag都是rails的前端的helpers方法(翻译过来就是辅助方法)。helpers方法还有很多,当然这节课我们要讲的helpers方法不是前端使用的helpers方法,而是控制器或模型中能够直接调用的一些辅助方法,并且我们能够自定义方法的名称以及里面的一些功能,这样的helpers方法我们可以称之为自定义的helpers方法(下面我们都叫...
阅读全文
摘要:我们这节课将在ActiveView基础上完善微博功能的前端代码: 这节课会讲rails中两个最常用的前端内置方法link_to和form_for link_to就是生成超链接,也就是相当于html的这个超链接标签。 使用格式:link_to "链接显示的文字" options = {}, html_options = {} 基本格式就是这样,如果我们不写明提交方式,会默认使用http的get方...
阅读全文
摘要:前面我们花了4节课讲了数据交互也就是ActiveRecord的使用方法,但是我们一直先回避rails中前端开发的一些问题比如注册和登陆页面及其他的视图代码。我们将用两节课来讲解rails中前端开发的一些基本知识来掌握简单的rails前端开发。 前面我们讲过rails中MVC每一个rails中都有与之对应的组件,C就是控制器对应的rails组件是ActiveController,M对应的rail...
阅读全文
摘要:这节课我们在用户模型和微博模型的基础上,通过添加用户发布微博的功能来讲解Rails中数据关联的相关内容。其实在前面我们就试过发布第一条微博,但当时还没添加用户模型,也就是微博是没有跟用户关联。 我们要做的就是怎么讲用户和微博这两个资源关联起来,就是我们这节课要讲的数据关联。 学过数据库开发,就知道两个种类的数据关联其实就是两个数据表的关联。关联数据表的前提就是一个数据表需要有另一个数据表的某个...
阅读全文
摘要:目前我们已经完成了微博应用的用户模型最基本的开发,但是使用这个用户模型是通过控制台很不方便,这节课就来为微博应用添加用户登录和注册的可视化功能,讲解rails中会话的概念和使用。 用户是需要密码的,我们先给用户模型添加上密码字段,只要两个步骤: 第一个步骤就是给用户模型再添加一个字段叫password 第一步比较麻烦,要退出rails控制台,如下操作 完成后会自动创建如下文件 添加代码后...
阅读全文
摘要:http://rubyinstaller.org/downloads/下载 https://git-for-windows.github.io/点击 跳转到如下页面(https://github.com/git-for-windows/git/releases/tag/v2.7.1.windows.2): 然后下载这个 下载的文件就是下面那两个:
阅读全文
摘要:就是bcrypt没有卸载干净, gem install bundler 然后Devkit单击选择解压到SOFTWARE文件夹(不是右键的解压而是单击然后选择目录),然后执行下面命令 然后打开工程目录: 重点错误及解决注意了: 注意卸载bcrypt不干净,所以要在后面加—force 然后maizi2工
阅读全文
摘要:模型类就是ActiveRecord,通过上节课我们可以通过微博应用正常地去添加用户了比如sundi,但是有两个大问题: 添加的时候没有对添加的字段内容作任何形式的验证 没有可视化界面让用户很方便地区添加新用户,我们用的是rails的控制台 这节课我们着手去解决第一个问题,就是Rails中模型类ActiveRecord的数据验证问题。 我们先进入rails控制台 这次我们仿造上节课的方法再次创建...
阅读全文
摘要:这部分要讲的就是MVC中的模型M。 ActiveRecord是Rails进行数据库操作的核心组件,采用标准的ORM模型,将数据库的表映射到相应的类,将行记录对应到具体的实例对象,字段对应的是实例对象的属性。 ORM模型就是对数据库的高级封装,也就是让我们不使用复杂的SQL语句就能对数据库进行操作。而且这样我们不用去关心数据库是mysql还是sqlite,都是一样地去调用接口就可以了。ORM的缺...
阅读全文
摘要:上节课讲了一般路由以及更便捷的命名路由,但是其实这两种都不太常用,资源路由更加常用 删除上节课添加的一般路由和命名路由,只留下资源路由(最后一行代码) 这个就是资源路由,我们前面已经讲过了,它在生成7种资源的访问路径同时也帮我们生成了对应的命名路由,我们通过命令行查看比如index的路由是posts,show的路由是post,路由就是Prefix下面的那些 原来index视图文件代码如...
阅读全文
摘要:路由配置文件中默认包含7种路由,我们排除掉show路由之后再去访问如下: 我们排除了show这个路由,那么还可以通过普通方式添加进去 动作是get,'posts/:id'是浏览器输入的路由格式,:to=>'posts#show'是交给对应的控制器和action 还有要注意请求动作不出现先url中,但
阅读全文
摘要:上一节,我们创建了微博资源的控制器,并创建了对应的4个action,这时候rails会自动帮我们生成action对应的路由信息并且默认方式是get,需要我们自己更改 我们通过命令查看路由信息就不需要每次都去打开该文件了。 如下就是rails自动帮我们生成的访问路由。 第一列是HTTP的动作比如cre
阅读全文
摘要:之前我们将控制器对应功能其实不准确,对应资源也可以并且更常见比如微博资源、新闻资源。 7种常见的资源访问方式就是index等系统帮我们默认的action命名 create是创建书籍,new则是创建新书籍的页面填写好后发送给create进行创建,真正创建还是create去完成 我们对控制器和actio
阅读全文
摘要:Rails资源是一个重要的概念,对于掌握rails有很大帮助。 REST的概念和RESTful应用程序的风格。 MVC用来定义应用的结构,REST则用来定义用户与应用之间的交互方式(就是定义了交互的一种规范)。 REST概念:资源的表现层状态转化,关键词:资源、表现层、状态转化。 资源:用户能够获取
阅读全文
摘要:1.简单举例如下: 2.action 控制器要读取那个数据,显示到哪个视图上,需要用到action。一个控制器其实就是由很多的action组成,控制器真正的业务逻辑都写在每一个action中,每一个action负责控制器的一个子功能。每当往控制器发送一个请求的时候,控制器先判断这个请求应该由哪个ac
阅读全文
摘要:选择工程目录 创建名为maizi2的工程(工程名要避免与Rails关键字不同,否则创建会失败) 可以看到工程maizi2成功创建了: 3. app文件夹是核心文件夹,MVC代码都在这个文件夹里面: assets是资源文件,层叠样式表和javascript和图片资源都在这个文件夹里面 config文件
阅读全文
摘要:ruby –v查看是否安装了ruby,返回结果是ruby版本 RubyGem就是一个Ruby管理相关的软件库,它可以通过gem语言去查找、安装、升级和卸载相关的软件包。现在只要知道RubyGem就是给Rails框架提供软件包的东西就可以了。 安装好ruby就已经包含了Gem。判断通过gem –v 安
阅读全文
摘要:最近在接手一个手机项目。在搭建环境的过程中,遇到了一些问题,在下文中已做记录,并奉上个人的解决方案。 开发环境 win2003 ; JetBrains RubyMine6.3.3 1、 下载最新版ruby,(rubyinstaller-2.0.0-p598.exe ,最新版) 官网:http://r
阅读全文
摘要:(1)代码清单11.8 (2)根据上例进行的:控制块的执行 (3)Proc将块封装为对象 之前我们使用块,是定义方法然后根据这个方法名定义对应的块,这样方法名和块是唯一对应。 下面讲的是把块当作对象处理,需要用到Proc对象,那么使用Proc.new定义带块的方法,要调用块就去调用Proc对象的ca
阅读全文
摘要:do~end或者{}之间的部分就是块,其中||包含起来的就是块变量,如下例子i就是块变量,块被执行了5次 (2) (3) (4) (5) (6)#块的另外一种用法是可以确保后处理被执行,这样可以防止类似忘记关闭文件等错误的发生。 (7) (8) 等价于 (9) (10) (11)给方法传递块参数的用
阅读全文
摘要:(1) (2)在rescue中使用retry后,begin以下的处理会重新执行一遍。如下例子,程序每隔10秒执行一次File.open,直到能成功打开文件为止,打开文件后再读取其内容。 如上目录中没有two2.txt文件,程序每隔10秒就运行一次,直到后面我们在该目录下创建two2.txt程序才运行
阅读全文
摘要:Ruby 的运算符大多都是作为实例方法提供给我们使用的,因此我们可以很方便地定义或者重定义运算符,改变其原有的含义。但是,表 9.3 中列举的运算 符是不允许修改的。 二元运算符 class Point attr_reader :x, :y def initialize(x=0, y=0) @x,
阅读全文
摘要:面向对象的特征: 封装:就算对象内部的数据结构改变了,只要公开给外部的方法名、功能没有改变,使用者就照常使用即可,比如我们去调用Time类的方法。 多态:Object类、String类和Float类的各个对象调用to_s的方法,得到的结果是不一样的。 多态的思考方法----鸭子模型 "能像鸭子那样走
阅读全文
摘要:模块与类有两点不同: 模块不能拥有实例 模块不能被继承 (1)模块提供命名空间:A模块的foo方法、num常量 与 B模块的foo方法、num常量不一样 (2)Mix-in就是将模块混合到类中,任何类Mix-in之后都能使用该模块功能如Math模块 (3) (4) (5) (6) (7) (8) (
阅读全文
摘要:(1) (2) (3) (4) (5)self.name没有@也可以的原因是因为self表明了它是类变量,这个是例外,与上面不冲突 (6)定义类方法的四种形式(下面介绍三种即可,第四种不用管) (7) (8) (9) (10) (11) (12) 我们定义类时没有指定父类的情况下,Ruby会默认该类
阅读全文

浙公网安备 33010602011771号