首页 > Ruby/Rails开发 > rails学习笔记自己总结2

rails学习笔记自己总结2

2016年5月15日

rails学习笔记自己总结2

http://www.codeweblog.com/rails学习笔记自己总结2/

Day Three

1.依照教程建立了几个静态页面home help about contact
2.初步了解TDD(测试驱动开发)的过程
3.几个关键点
config/routes.rb //路由文件 类似于j2ee的web.xml文件 用于记录可现实页面的列表
app/controllers/文件夹 //用于存放控制器文件的目录 mvc中的c
app/views/文件夹 //用于存放视图文件的目录 mvc中的v 这个文件夹用有个layouts文件夹用于存放视图模板文件 模板都懂得
spec/requests/文件夹 //用于存放RSpec测试文件 教程中还有说有别的测试框架 还有自动测试框架之类的
4.总结下大致过程
$ rails new sample_app –skip-test-unit –skip-bundle //新建一个项目 不自动生成测试文件 不直接bundle
修改Gemfile文件 额 关于这个作者说是因为各个gem和rails的版本兼容性问题 但是有没有经过测试可用的对照表之类的 有空找找看吧
$ bundle intstall –without production
$ rails generate rspec:install //使用RSpec而不用Test:Unit
$ git init
$ git add .
$ git commit -m “Initial commit”
$ 修改readme文档 个人觉得此项可选
$ git remote add origin git…
$ git push -u origin master
$ git checkout -b static-pages //git分支 标记为static-pages 额 以前从来没用过git 不过还是个挺好的习惯
$ rails generate rspec:install //生成测试用例 不理解为什么又来一遍
这里要分两部分了 一个是直接建立静态页面及其控制器 一个是先写测试再写内容(TDD),TDD还有一个很有意思的说法即“遇红,变绿,重构(Red,Green,Refactor)” 这也是作者想让我们尽快熟悉ror的开发模式吧
首先是直接建立:
$ rails generate controller StaticPages home help –no-test-framework //home 和 help 页面是直接建立出来的 附带参数是禁止自动生成RSpec测试代码
home 和 help 的静态页面生成完毕 可以用文本编辑器编辑里面的内容
接着是TDD方式
$ rails generate integration_test static_pages //生成集成测试
$ vim spec/requests/static_pages_spec.rb //编辑测试文件
测试文件中加入如下代码:
describe “About page” do
it “should have the content ‘About Us'” do
visit ‘/static_pages/about’
page.should have_content(‘About Us’)
end
end //额 这里主要注意end的位置和个数 这个跟java里的括号似的 很容易就搞错 而且用vim编辑时不容易定位 实际开发中可能会很头疼
$ bundle exec rspec spec/requests/static_pages_spec.rb //好吧变红 但是我没红 额 不管怎样 测试没通过
修改路由文件routes.rb
修改控制器文件static_pages_spec.rb
添加静态页面about.html.erb
$ bundle exec rspec spec/requests/static_pages_spec.rb //继续测试 变绿了 测试通过
重构 重构就是替换掉重复的代码 但是这里讲的太粗犷了 后续章节应该会详细介绍 哦 这里用到了嵌入式ruby(Embedded Ruby)目前个人感觉这个跟jsp标签很类似 这里也提到了布局 同样很粗犷
5.练习
contact页面是作为练习的内容
重构layout 是练习的第二项内容
教材建议安装PostgreSQL 理由是最好在开发环境、测试环境和生产环境中使用相同类型的数据库 我开始讨厌Heroku了 为啥只支持这一个数据库?
6.教材提到了一些回滚操作的方法
即使再小心,在开发 Rails 应用程序过程中仍然可能犯错。幸运的是,Rails 提供了一些工具能够帮助你进行复原。

举例来说,一个常见的情况是,你想更改控制器的名字,这时你就要撤销生成的代码。生成控制器时,除了控制器文件本身之外,Rails 还会生成很多其他的文件(参见代码 3.4)。撤销生成的文件不仅仅要删除主要的文件,还要删除一些辅助的文件。(事实上,我们还要撤销对 routes.rb 文件自动做的一些改动。)在 Rails 中,我们可以通过 rails destroy 命令完成这些操作。一般来说,下面的两个命令是相互抵消的:

$ rails generate controller FooBars baz quux
$ rails destroy controller FooBars baz quux

同样的,在第六章中会使用下面的命令生成模型:

$ rails generate model Foo bar:string baz:integer

生成的模型可通过下面的命令撤销:

$ rails destroy model Foo

(对模型来说我们可以省略命令行中其余的参数。当阅读到第六章时,看看你能否发现为什么可以这么做。)

对模型来说涉及到的另一个技术是撤销迁移。第二章已经简要的介绍了迁移,第六章开始会更深入的介绍。迁移通过下面的命令改变数据库的状态:

$ rake db:migrate

我们可以使用下面的命令撤销一个迁移操作:

$ rake db:rollback

如果要回到最开始的状态,可以使用:

$ rake db:migrate VERSION=0

你可能已经猜到了,将数字 0 换成其他的数字就会回到相应的版本状态,这些版本数字是按照迁移顺序排序的。

拥有这些技术,我们就可以得心的应对开发过程中遇到的各种混乱(snafu)了。

7.关于高级部分
教材中的高级部分作者说可以跳过并且很可能马上就过时了
粗略看了一下 直接无视
我很懒 我以后肯定会用IDE的

分类: Ruby/Rails开发 标签:
本文的评论功能被关闭了.