ruby on rails tutorila 笔记(第三章)

来源:互联网 发布:做淘宝排名是什么意思 编辑:程序博客网 时间:2024/06/03 03:45

本章将会从静态页面开始重构一个网站,以下是一些笔记记录

1)、rails newsample_app --skip-test-unit

上述命令中的--skip-test-unit选项的意思是让rails不生成默认使用的Test::Unit测试框架对应的test文件夹

2)、遇到问题

"Network error while fetching"

解决办法:遇到这类问题,一般都是代理配置的问题,以及source的写法的问题,确保这两者的配置没有问题一般就不会有问题

3)、bundle install –withoutproduction

我们使用该命令禁止安装生产环境所需的gem,这个选项运行一次一般会被记住,后续再次调用Bundle就不用再指定这个选项,直接运行bundle install就可以自动不安装生产环境所需的gem。

4)、config/initializers/secret_token.rb

动态生成权标:

require 'securerandom'

def secure_token

 token_file = Rails.root.join('.secret')

 if File.exist?(token_file)

   # Use theexisting token.

   File.read(token_file).chomp

 else

   # Generate a newtoken and store it in token_file.

   token = SecureRandom.hex(64)

   File.write(token_file, token)

   token

 end

end

SampleApp::Application.config.secret_key_base = secure_token

对于每一个新建的rails app都会获得一个很长而且是随机生成的secret token,当使用rails new的时候,他会被生成并保存在config/initializers/secret_token.rb,内容类似于以下:

WebStore::Application.config.secret_token= '4f06a7a…72489780f'

因为rails自动创建secret token,所以很多开发者会忽略掉它。但是这个secret token就像是你的应用的管理员钥匙。如果你拥有了secret token,那样伪造会话和提升权限就会变得很容易。这是其中一个十分重要而且敏感的数据需要去保护的。加密是保护你的钥匙的最佳办法。

原文来自:http://www.oschina.net/translate/rails-insecure-defaults

4)、设置rails使用RSpec而不用Test::Unit,使用一下命令:

Rails generate repec:install

5)、创建控制器

Rails generate controller StaticPageshome help –no-test-framework

以上命令中的参数的意思是:禁止生成RSpec测试代码。

还可以通过命令来撤销操作,如以下命令:

Rails generate controller FooBars bazquux

Rails destroy controller FooBars bazquux

Rails generate model Foo bar:stringbaz:integer

Rails destroy model Foo

5)、通过以下命令来生成集成测试文件

rails generate integration_test static_pages
6)、通过运行以下命令来运行测试
Bundle exec rspec spec/requests/static_pages_spec.rb
7)、本章中使用到的几个gem包:
  gem 'rspec-rails', '2.13.1'
  gem 'guard-rspec', '2.5.0'
  gem 'spork-rails', '4.0.0'
  gem 'guard-spork', '1.5.0'
gem 'childprocess', '0.5.2'
使用Guard自动测试,使用rspec命令有一点很烦人,你总是要切换命令行然后手动输入的去执行命令测试。Guard会监视文件系统的变动,加入你修改了static_pages_spec.rb,那么只有这个文件中的测试会被运行,而且,我们可以适当的设置Guard,当被测试的文件发生变化的会自动去执行测试
8)、bundle exec spork  --bootstrap
9)、bundle exec guard init spork
Spork和Guard一起使用时会很强大,我们可以使用以上命令进行设置。
修改完之后,我们可以通过Guard命令同时启动Guard和Spork
Bundle exec guard
0 0
原创粉丝点击