美文网首页
实现Demo

实现Demo

作者: jddxs | 来源:发表于2019-10-30 22:40 被阅读0次

1、安装rails工具

在安装rails之前需要先安装Ruby和SQLite3.
检查Ruby是否安装的方式是在命令行中执行如下命令:

ruby -v
#如果已经安装了的话,结果应该是ruby 2.5.0。安装不同的版本,出现的是不同的数字

在windows上快速安装的方式是使用:Rails Installer

在windows下,还要安装 Ruby Installer Development Kit
实践中发现只使用RailsIntaller安装就可以了。

第2种安装方式比较靠谱,先安装Ruby,再使用rubygem这个工具安装Rails,这样安装得到的Rails可以是最新的。

2、创建rails应用

Rails中使用多个脚本工具使开发变得简单,其中一个脚本工具就是new application generator
使用方式是在执行如下命令:

rails new blog

结果就是生成一个blog文件夹,代表一个名为blog的应用。

3、启动服务器

以上就创建一个名为blog的rails应用了。为了使应用能跑起来,需要启动web服务器,意思是使用web server来启动这个blog应用。命令如下:

rails server

对了,在执行此命令时,需要切换到blog文件夹下。
在执行命令启动服务时,出现如下错误:

Could not find gem 'puma (~> 3.7) x86-mingw32' in any of the gem sources listed in your Gemfile.
Run `bundle install` to install missing gems.

意思是缺少一个gem,那gem到底是什么东西呢?类似于一个组件吗?原来文中有解释:Puma, a web server distributed with Rails by default。它是一个随着rails发布的一个服务器程序。
原来在执行rails new blog生成应用程序时,命令一直没有执行完,如下图:


获取gem没有成功

最后正常启动的结果如下:

PS E:\邓德新\BuildWeb\blog> rails server
=> Booting Puma
=> Rails 6.0.0 application starting in development
=> Run `rails server --help` for more startup options
*** SIGUSR2 not implemented, signal based restart unavailable!
*** SIGUSR1 not implemented, signal based restart unavailable!
*** SIGHUP not implemented, signal based logs reopening unavailable!
Puma starting in single mode...
* Version 3.12.1 (ruby 2.6.5-p114), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop

显然,tcp://localhost:3000这里输出的是错误的,正确是应该是:http://localhost:3000

4、添加Controller和Action

为了响应某个具体的请求,比如http://localhost/Home/Index,需要有名为Home的Controller和名为Index的Action。
添加Controller和Action的命令是:

rails generate controller Welcome index

其中Welcome是Controller的名字,而index是Action的名字。
伴随着Controller与Action的创建,同时创建的还有View;Controller是由一个文件承载,路径是“app/controllers/welcome_controller.rb”;而View的路径是“app/views/welcome/index.html.erb”。

5、设置应用程序的根路径的Home Page

其实是设置一条路由,把对地址Http://localhost/的请求指向一个Controller的一个Action,添加路由的位置是“config/routes.rb”。文件config/routes.rb中保存是各种路由信息。如果请求的地址没有路由信息会怎么样?

相关文章

网友评论

      本文标题:实现Demo

      本文链接:https://www.haomeiwen.com/subject/aajavctx.html