Ruby on Rails的安装配置教程详解

学习与开发 Ruby on Rails 应用的过程是在本地电脑上完成的。也就是你需要在本地电脑上创建 Rails 项目,运行它,然后学习或去做真正的开发。两种方法,一是可以直接在本地电脑上安装 Rails 项目的所有工具,然后直接在本地电脑上运行 Rails 项目。另外, 我们可以使用 Docker 去 Compose 一个 Rails 项目。

在本地直接运行 Rails 项目

需求

我在 macOS 上测试了整个过程。你需要:

安装 Ruby
安装 Xcode
安装 rails

打开终端,用 Ruby 的 Gem 去安装 Rails:

gem install rails
这会安装最新的 rails。你也可以指定安装具体的 Rails 版本,像这样:

gem install rails -v 5.0.0.1
如果你遇到错误:

Building native extensions. This could take a while...
ERROR: Error installing rails:
       ERROR: Failed to build gem native extension.
意思是不能构建本地扩展,Google 上面遇到的错误,找到网页:http://stackoverflow.com/questions/19580685/installing-rails-on-mavericks

解决的方法是执行:

xcode-select --install
上面的命令是安装了 Xcode 的 Command Line Developer Tools(开发者命令行工具)。完成以后再次执行:

gem install rails
安装过程需要一段时间,看到下面提示,说明成功的安装了 rails:

Successfully installed
创建 Rails 项目

rails new 命令可以创建新的 Rails 项目,执行:

cd ~/desktop
mkdir rails-app
cd rails-app

rails new .
先进入到桌面上,创建一个 rails-app 目录,进入这个目录,再用 rails new 在当前目录下创建一个 Rails 项目。

启动 Rails 项目

rails server 可以启动 Rails 项目。执行:

rails server
如果遇到错误:

getaddrinfo: nodename nor servname provided, or not known (SocketError)
默认服务器的端口号是 3000,如果你的本地电脑已经使用了 3000 这个端口就会遇到上面这个错误,解决的方法是在创建服务器的时候手工的指定一下新的端口号,像这样:

rails server -p 3300 -b '0.0.0.0'
这样你可以打开地址:

http://localhost:3300
你会看到 Rails 应用的欢迎界面。

48AA8CB6-CEDC-40B8-B2AE-B9BD7FBEDF2D

在本地用 Docker 运行 Rails 项目

这会是我最终选择的在本地运行 Rails 项目的方法。以后,我也会假设您选择的是这种方法。

需求

安装 docker for mac / docker for windows

目录结构

 → mkdir -p app services/rails/config
 → ls
app  services
 → touch docker-compose.yml services/rails/Dockerfile services/rails/config/Gemfile
 → tree
.
├── app
├── docker-compose.yml
└── services
    └── rails
        ├── Dockerfile
        └── config
            └── Gemfile

4 directories, 3 files
Compose

打开项目根目录下的 docker-compose.yml,定义几个服务:

version: '2'
services:
  rails:
    build:
      context: ./services/rails
      dockerfile: Dockerfile
    volumes:
      - ./app:/mnt/app
    ports:
      - "3000:3000"
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    tty: true
  db:
    image: mariadb:10.1
    environment:
      MYSQL_ROOT_PASSWORD: "root"
      MYSQL_DATABASE: "app"
      MYSQL_USER: "app"
      MYSQL_PASSWORD: "123123"
    volumes:
      - db:/var/lib/mysql
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    ports:
      - "8081:80"
    environment:
      PMA_HOST: "db"
      PMA_USER: "root"
      PMA_PASSWORD: "root"
volumes:
  db:
    driver: local
Gemfile

打开 services/rails/config/Gemfile 文件,输入内容:

source 'https://rubygems.org'
gem 'rails', '5.0.0.1'
Dockerfile

打开 services/rails/dockerfile 文件,输入内容:

FROM ruby:2.3
MAINTAINER wanghao <wanghao@ninghao.net>

RUN apt-get update && apt-get install -y nodejs \
  && rm -rf /var/lib/apt/lists/*

RUN gem install rails --pre --no-ri --no-rdoc
RUN mkdir -p /mnt/app
WORKDIR /mnt/app
RUN rails new .
EXPOSE 3000
启动服务

运行 Docker,然后在项目的根目录下,执行:

docker-compose up -d
创建项目

在项目的根目录下,执行命令创建一个 rails 项目:

docker-compose run rails rails new .
新的项目文件会存储在 app 目录的下面。

再次启动

新创建了项目以后,再次执行:

docker-compose up -d
然后打开浏览器,输入地址:

http://localhost:3000
你会看到下面这个欢迎界面:

7917D846-21E0-4A4E-B784-A886334C4582

执行命令

在开发 Rails 应用的时候,你需要用到很多命令行工具,我们可以进入到 rails 服务的容器里,然后去执行需要的命令。进入到 rails 服务的容器:

docker-compose exec rails bash
hello,Rails

让 Rails 说出 “hello”,可以创建一个简单的控制器与视图。

用 controller 生产器,去创建一个名字是 Welcome 的控制器,里面有一个 index 动作:

rails generate controller Welcome index
结果像这样:

Running via Spring preloader in process 54
      create  app/controllers/welcome_controller.rb
       route  get 'welcome/index'
      invoke  erb
      create    app/views/welcome
      create    app/views/welcome/index.html.erb
      invoke  test_unit
      create    test/controllers/welcome_controller_test.rb
      invoke  helper
      create    app/helpers/welcome_helper.rb
      invoke    test_unit
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/welcome.coffee
      invoke    scss
      create      app/assets/stylesheets/welcome.scss
控制器:

app/controllers/welcome_controller.rb
视图:

app/views/welcome/index.html.erb
打开 index.html.erb 这个视图,删除里面的所有内容,添加下面的东西:

<h1>hello</h1>
访问地址:

http://localhost:3000/welcome/index
你会看到 “hello” 。

设置应用的首页

编辑文件:

config/routes.rb
内容如下:

Rails.application.routes.draw do
  get 'welcome/index'
  root 'welcome#index'
end
root 'welcome#index',意思是用 welcome 控制器的 index 动作来处理对应用首页的请求。

get 'welcome/index',意思是请求 welcome/index 这个地址的时候,用 welcome 控制器的 index 来处理。

时间: 2024-11-05 14:49:53

Ruby on Rails的安装配置教程详解的相关文章

Laravel 5.2 安装配置教程详解

一,安装 1.服务器要求 Laravel 框架有对服务器有少量要求,当然,Laravel Homestead 已经满足所有这些要求,所以我们强烈推荐使用 Homestead 作为 Laravel 本地开发环境. 如果你没有使用 Homestead,那么需要保证开发环境满足以下要求: PHP版本 >= 5.5.9 PHP扩展:OpenSSL PHP扩展:PDO PHP扩展:Mbstring PHP扩展:Tokenizer 2.安装 Laravel Laravel 使用 Composer 管理依赖,

PHP 7 的编译安装配置教程详解

php 的编译安装相当简单,且每个版本差异不大,正因为如此之前版本的编译安装过程也可以参考,当然,需要注意的是,每个版本的编译参数存在部分差异,以 ./configure --help 中具体描述的编译配置参数为准. 本文中系统环境为 CentOS 7 64bit,如使用其他系统环境的,请注意在某些 依赖安装环节 的差异. 准备工作 对于 CentOS ,yum 我向来是用作安装大批量依赖的工具,所以,一股脑安装这些依赖库吧. yum install -y gcc gcc-c++ autocon

php5.3.10的安装配置步骤详解

在linux中php安装配置与windows中有不小的区别了,在linux中几乎都是代码形式了,下面我们一起来看看php5.3.10的安装配置步骤详解,希望下文可帮助到各位. 下面以最新的php-5.3.10为例进行安装. wget http://cn.php.net/distributions/php-5.3.10.tar.gz tar -zxvf php-5.3.10.tar.gz cd php-5.3.10 ./configure --prefix=/usr/local/php --wit

Centos下编译安装Nginx教程详解_nginx

一.安装nginx时必须先安装相应的编译工具 yum -y install gcc gcc-c++ autoconf automake yum -y install zlib zlib-devel openssl openssl-devel pcre-devel 建立nginx 组 groupadd -r nginx useradd -s /sbin/nologin -g nginx -r nginx id nginx zlib:nginx提供gzip模块,需要zlib库支持 openssl:n

Bootstrap 4 的安装与配置教程详解

Bootstrap 4 刚刚发布了预览版,离正式版还有一段时间.不过现在我们已经可以使用 Bootstrap 4 了,看看里面有什么新东西. 最简单的方法就是使用 Bootstrap 的 CDN ,把需要的样式表与 JS 文件链接到网页上,不过这样你不能去编辑 Bootstrap ,比如去定制里面的一些选项.下面我们使用 Git 去克隆一份 Bootstrap 仓库到本地. # 进入到桌面 cd ~/desktop # 为项目创建目录并进入这个目录 mkdir ninghao-bootstrap

Linux下安装Redis教程详解

安装Reids   Redis下载地址:http://www.redis.io/download # wget http://download.redis.io/releases/redis-2.8.13.tar.gz # cd redis-2.8.13/ # make zmalloc.o: In function `zmalloc_used_memory': /usr/local/webserver/redis-2.8.13/src/zmalloc.c:226: undefined refer

ubuntu 安装配置 mysql 详解教程

ubuntu 安装配置 mysql 安装MySQL  代码如下 复制代码 sudo apt-get install mysql-server 设置Mysql中root用户的密码 默认的MySQL安装之后根用户没有密码: mysql -u root一般来说,对mysql中的数据库进行操作,最好不要用根用户,只有在设置时才有这种可能.  代码如下 复制代码 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '

Ruby on Rails中的ActiveResource使用详解_ruby专题

当 HTTP 响应是一个与存在的格式不同的格式时(XML 和 JSON),需要某些额外的格式解析,创一个你惯用的格式,并在类别中使用它.惯用的格式应当实作下列方法:extension, mime_type,     encode 以及 decode.      module ActiveResource module Formats module Extend module CSVFormat extend self def extension 'csv' end def mime_type '

centos6中gitolite安装配置步骤详解

git服务端的管理工具用过2个,一个gitlab,一个是gitolite, 1,gitlab功能强大,有web管理界面,反正是各种方便吧,请参考:linux gitlab nginx 安装 配置 详解,但是gitlab安装比较麻烦 2,gitolite,安装非常简单,功能也比较简单,基本需要能满足,创建仓库,分配权限,总体来说还不错. 如果频繁的创建仓库,以及人员变更,用gitlab比较合适的,反之gitolite比较合适. 一,安装GIT # yum install perl openssh