which gem
1. 怎么用Rails来生成我们的第一个app。
2. 学会怎么使用Git进行版本控制。
3.怎么将程序部署至Heroku,Rails服务提供商。
Ruby on Rails是一个最流行、最强大的构建动态网站的一个框架。有很多知名的企业使用Rails,例如:
37signal、Github、Shopify、Scribd、Twitter、Disney、Hulu等等。
为什么Rails会这么流行呢?首先因为Rails是一个在MIT协议下得开源程序。其次,Rails也拥有很多优雅和
有竞争力的设计。通过扩展Ruby,Rails为编写网站应用创建了一种优秀的域名描述语言。因此,许多普通的编程
任务--例如生成HTML、生成数据模型、生成URL路由--用Rails来完成都很容易,而且生成的应用的代码非常简洁,具有很高的可读性。
Rails也适应网页开发和框架设计的快速发展。例如,Rails是第一个全面使用REST的框架。而且当其他框架的开发者在新技术上取得成功,
David Heinemeier Hansson和Rails核心团队会毫不犹豫地吸收他们的想法。
最后,Rails受益于充满不同寻常狂热得社区。这使得有几百人为Rails贡献代码。还有定期会议,大量的gem,丰富的博客,
还有许多高质量的论坛以及IRC频道。
许多Rails程序员也使得处理一些不可思议的错误更加容易,“Google错误信息”的算法几乎总能得到相关的博客或者论坛话题。
工欲善其事,必先利其器。下面我们首先选择编辑器。
IDE
最出名的Rails IDE是RadRails和RubyMine。
编写Rails程序你可以选择以上两者之一,或者其他的。
或者你更偏向于用文本编辑器的话,请看下文。
文本编辑器和命令行
和许多程序员一样,我更喜欢使用文本编辑器。
Windows和Linux下,推荐Subline Text 2, 跨平台编辑器;Mac下推荐注明的文本编辑神器TextMate。
命令行终端选用iTerm或者系统自带的都可以。Windows下最好使用虚拟机或者Rails Installer .
假如你用Sublime Text, 最好根据Rails Tutorial Sublime Text配置你的Sublime Text。
Rails Tutorial Sublime Text
浏览器
浏览器最好选择FireFox、Safari、或者Chrome。便于调试。
Ruby, RubyGems, Rails, and Git
Rails Installer (Windows)
去这里下载Rails安装器。Rails Installer
我们开始安装开发环境
Install Git
请移步到 github.Install Ruby
Mac和Linux下请先安装RVM或rbenv,用于Ruby版本管理。
Windows下用Pik。
当你安装完以上步骤的时候,你几乎可以开始我们的旅程了。
不过Mac用户可能需要先安装Xcode developer tools。
如果觉得Xcode太大,也可以只安装Command Line Tools for Xcode.
安装RubyGems
RubyGmes是Ruby的一个软件管理项目,其中包括Rails。
一旦安装了Ruby,或者如果你安装了Rvm,则也已经安装了gem了。
在Mac和Linux下可以输入命令
which gem
测试是否gem安装成功
如果没有,下载RubyGems,然后cd进目录,运行
ruby setup.rb
如果提示没有权限,命令行前加sudo
更新gem
gem update --system
mate ~/.gemrc
install: --no-rdoc --no-ri
update: --no-rdoc --no-ri
安装完gem之后,安装Rails就非常容易了。
gem install rails --version 4.1.1
rails --version
$ sudo apt-get install libxslt-dev libxml2-dev libsqlite3-dev # Linux only
$ sudo yum install libxslt-devel libxml2-devel libsqlite3-devel
+++++++++++++++++++++++++++++++++开始我们的教程++++++++++++++++++++++++++++++++++++++++++++
$ mkdir rails_projects
$ cd rails_projects
$ rails new first_app
create
create README.rdoc
create Rakefile
create config.ru
create .gitignore
create Gemfile
create app
create app/assets/javascripts/application.js
create app/assets/stylesheets/application.css
create app/controllers/application_controller.rb
.
.
.
create test/test_helper.rb
create tmp/cache
create tmp/cache/assets
create vendor/assets/javascripts
create vendor/assets/javascripts/.keep
create vendor/assets/stylesheets
create vendor/assets/stylesheets/.keep
run bundle install
.
.
.
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled
gem is installed.
打开Gemfile, 将最上面一行
source https://rubygems.org
source http://ruby.sdutlinux.org/
也可以替换为
source http://ruby.taobao.org/
然后
cd rails_project
bundle install
Rails 自动为我们创建了MVC框架,包括测试的框架。
下面我们看看目录结构
File/Directory |
Purpose |
app/ |
应用程序核心代码,包括Model,Controller,Views以及Helper放法。 |
app/assets |
应用程序所需文件,如css、js、图片等 |
bin/ |
二进制可执行文件 |
config/ |
配置文件 |
db/ |
数据库文件,包括migration等 |
doc/ |
应用程序的文档 |
lib/ |
库 |
lib/assets |
库所需要的文件,如css、js、图片等 |
log/ |
日志 |
public/ |
从互联网可以访问的文件 |
bin/rails |
生成代码的程序,控制台session,或者启动一个本地服务 |
test/ |
程序测试文件目录 |
tmp/ |
临时文件 |
vendor/ |
第三方代码,如 plugin和 gem |
vendor/assets |
第三方代码所需文件 |
README.rdoc |
应用程序简介 |
Rakefile |
通过rake命令使用的文件 |
Gemfile |
程序gem依赖配置文件 |
Gemfile.lock |
用来确保所有应用程序使用相同版本的gem |
config.ru |
Rack中间件使用的文件 |
.gitignore |
Git忽略的文件配置文件 |
现在我们可以试着运行我们的程序了
$ rails server=> Booting WEBrick
=> Rails application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
$rails s
假如系统提示缺乏Javascript运行时,最好安装Node.js.
然后我们在浏览器输入
localhost:3000
网站建成之后,我们用Git来进行版本控制
Git安装好之后,首先在github.com建立一个账户,然后建立一个repository,first_app
然后通过terminal配置git,现在github.com也提供了GUI版本,你也可以直接通过GUI版本控制。
$git config --global user.name "Your name"
$git config --global user.email [email protected]
#下面的这个只是为了方便
$git config --global alias.co checkout
#ublime Text 2
$git config --global core.editor "subl -w"
#TextMate
$git config --global core.editor "mate -w"
#gVim
$git config --global core.editor " gvim -f"
#MacVim
$git config --global core.editor "mvim -f"
$git init
为了安全和方便,我们编辑一下.gitignore文件
$ mate .gitignore
# Ignore bundler config.
/.bundle
# Ignore the default SQLite database.
/db/*.sqlite3
/db/*.sqlite3-journal
# Ignore all logfiles and tempfiles.
/log/*.log
/tmp
# Ignore other unneeded files.
database.yml
doc/
*.swp
*~
.project
.DS_Store
.idea
.secret
$git add .
$git commit -m "Initialize repository"
现在我们终于可以将代码提交至github了
$ git remote add origin https://github.com/你的用户名/first_app.git
$ git push -u origin master
$ git checkout -b modify-README
Switched to a new branch 'modify-README'
$ git branch
master
* modify-README
然后我们将README.rdoc重命名为README.md,然后编辑README.md
$git mv README.rdoc README.md
$mate README.md
# Ruby on Rails Tutorial: first application
This is the first application for the
[*Ruby on Rails Tutorial*](http://railstutorial.org/)
by [rocLv](http://roclv.github.io/).
$ git commit -am "Improve the README file"
将modify-README版本合并至master
$ git co master
Switched to branch 'master'
$ git merge modify-README
Updating 34f06b7..2c92bef
Fast forward
README.rdoc | 243 --------------------------------------------------
README.md | 5 +
2 files changed, 5 insertions(+), 243 deletions(-)
delete mode 100644 README.rdoc
create mode 100644 README.md
$git branch -d modify-README
Deleted branch modify-README (was 2c92bef).
通常在我们确实觉得分支被搞乱时执行。
现在我们可以Push我们本地的repository到github了
$git push
下面,也是本文的最后一步,我们将程序部署至Heroku
Heroku使用PosgreSQL作为数据库服务器,所以我们必须包含gem ‘pg’
修改Gemfile
group :production do
gem 'pg', '0.15.1'
gem 'rails_12factor', '0.0.2'
end
最好在Gemfile文件里申明我们所用的ruby版本
ruby '2.0.0'
#ruby-gemset=railstutorial_rails_4_0
$ bundle install --without production
$ git commit -a -m "Update Gemfile.lock for Heroku"
$ rake assets:precompile
$ git add .
$ git commit -m "Add precompiled assets for Heroku"
$heroku login
$heroku create
$git push heroku master
$ heroku open