手机
当前位置:查字典教程网 >脚本专栏 >ruby专题 >Ruby on Rails网站项目构建简单指南
Ruby on Rails网站项目构建简单指南
摘要:创建Rails项目创建一个普通的Rails项目,可以直接使用以下命令:railsnewblog但在国内因为连接RubyGems的速度太慢,而...

创建 Rails 项目

创建一个普通的 Rails 项目,可以直接使用以下命令:

rails new blog

但在国内因为连接 RubyGems 的速度太慢,而 Rails 默认在构建完项目结构后,会使用 bundle 命令从 RubyGems 下载安装依赖包。最后会因为网络问题而卡死。所以需要使用 --skip-bundle 参数跳过执行 bundle 这一步。然后使用国内的 Gems 镜像源来完成后面依赖包的安装。国内推荐的源是 Ruby China 提供的: https://gems.ruby-china.org/。

最后整理步骤如下:

创建项目:

rails new blog --skip-bundle

修改项目目录中的 Gemfile 文件,修改第一行中 source 后面引号中的内容值为:https://gems.ruby-china.org/

最后在项目目录中执行: bundle install 完成安装依赖包。

至此,一个标准的 Rails 项目骨架创建完成。

配置 Rails 项目

默认情况下,已经可以使用生成好的项目骨架来开始开发项目,但根据实际需求,还是需要对一些配置进行调整。比如时区,或使用 MySQL 等。

设置时区

默认 Rails 使用的是 UTC 时区,如果项目只是在国内使用,这会导致数据跟时间相关的值都会比国内的时间晚 8 个小时。所以如果非国际性项目,可以把时区固定到国内。

打开项目目录中 config/application.rb 文件。去掉 config.time_zone 配置项前的注释,然后修改配置项的值为 Beijing,最后添加一行新的配置:

config.active_record.default_timezone = :local

使用 MySQL

默认 Rails 使用的是 sqlite 数据库,如果要使用 MySQL,还需要安装 MySQL 的程序包。并修改数据库默认配置。

打开项目目录中的 Gemfile 文件,添加一个全局的依赖包 mysql2,格式如下:

gem 'mysql2'

然后执行: bundle install 安装依赖包。

接下来打开 config/database.yml 文件,修改 development 区块的配置如下格式:

development: adapter: mysql2 database: blog username: root password: host: 127.0.0.1

创建 Rails 文档

对于已经熟练掌握了 Rails 的老手来说,这一步并不是必须的。但对于像我这样的新手,经常会需要去翻翻手册来寻求帮助,把文档搬到本地,省去了在没有网络或网速太慢时的烦恼。Rails 提供了命令,可以在项目中生成 Rails 的本地手册和 API 文档。

首先需要添加一个依赖包: redcarpet。打开项目中的 Gemfile 文件,因为只是在本地环境下使用,所以不用加入到全局依赖,找到文件底部的 development 配置块,添加到这里就行了,格式如下:

gem 'redcarpet', '~> 3.1.2'

然后执行: bundle install 安装包。

使用如下命令生成 Rails 帮助文档和 API 文档:

rake doc:guides rake doc:rails

命令完成后,文档会生成到 doc 目录。

在 Rails 中创建自定义命令

开发 Web 应用时,难免会遇到需要编写在终端执行的命令脚本。比如说要从一个很大的文本中导入数据。在 Rails 中完成这个事情相当简单,下面是一个示例。

首先是创建脚本文件。在 Rails 项目的 lib/tasks 目录中创建一个 hello.rake 的文件。文件内容如下:

namespace :hello do task :world do puts "Hello, World!" end end

这样就完成了一个简单的打招呼脚本,要运行这个脚本,需要使用 rake 命令:

rake hello:world

默认情况下,脚本命令并没有引入 Rails 的项目模块。如果需要引入也很简单!比如我想要和项目中的所有客户打个招呼:

namespace :hello do # ... task :customers => :environment do for customer in Customer.all puts sprintf("hello, %s", customer.name) end end end

如果你的项目中刚好有 Customer 模块,而刚好又存在 name 字段,那就可以执行 rake hello:customers 来验证效果了。对比第一个任务,这里添加了 => :environment 这段代码,正是它实现了引入项目环境依赖的功能。是不是很简单?

【Ruby on Rails网站项目构建简单指南】相关文章:

Ruby on Rails中MVC结构的数据传递解析

深入理解Ruby on Rails中的缓存机制

关于Ruby on Rails视图编写的一些建议

Ruby on Rails中Rack中间件的基础学习教程

Ruby on Rails下的图像处理入门教程

Ruby on Rails迁移时的一些注意事项

提升Ruby on Rails性能的几个解决方案

举例理解Ruby on Rails的页面缓存机制

ruby on rails 代码技巧

ruby元编程之创建自己的动态方法

精品推荐
分类导航