【Ruby on Rails全栈课程】1.4 第一个HelloWorld

1、文件功能

文件名功能描述
app/有Controllers(控制台)、Models(模型)和Views(视图)文件夹,接下来的内容主要都在这个目录。
config/应用程式设定档、路由规则、数据库设定等等
db/数据库的映射文件
lib/放一些自定义的Module、Class
Gemfilegem插件列表,可以指定插件的版本
README项目的使用说明

2、网页请求路径

当网页发送一个请求,首先我们会根据网页请求路径以及路由(route.rb)里面的代码,来确定分配到哪个控制器(controller)中,控制器将请求处理之后,将数据发送给视图(view)显示。请求路径

3、HelloWorld

(1)连接远程,打开项目文件目录(cd /vagrant/data_system),咱们开始编写第一个HelloWorld,运行rails g controller home index,其中home代表controller,index代表action方法

vagrant@vagrant-ubuntu-trusty-64:/vagrant/data_system$ rails g controller home index
#系统返回信息
      create  app/controllers/home_controller.rb
       route  get 'home/index'
      invoke  erb
      create    app/views/home
      create    app/views/home/index.html.erb
      invoke  test_unit
      create    test/controllers/home_controller_test.rb
      invoke  helper
      create    app/helpers/home_helper.rb
      invoke    test_unit
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/home.coffee
      invoke    scss
      create      app/assets/stylesheets/home.scss

我们在sublime打开data_system项目,看到app/controllers/home_controller.rb文件夹下会有以下代码,可以看到系统自动生成了一个HomeController类,以及一个index方法:

(2)在路由(config/route.rb)文件中改一下代码

#原代码
get 'home/index'
#改成
get "home/index" => "home#index"

意思是http://localhost:3000/home/index网址对应到HomeController中的index方法。

(3)我们再打开app/views/home/index.html.erb文件,将里面的代码全部删掉替换成下面代码,不要忘了保存文件哦~

<h1>Hello, World!</h1>

然后rails s启动项目,在浏览器中打开http://localhost:3000/home/index页面(注意mac电脑是http://192.168.33.10:3000/home/index)出现Hello,World!

Hello,World!

4、新生疑问点

主要将我当时刚学习ruby时的困惑,我在这里梳理一下。

(1)Controllers(控制台)、Models(模型)和Views(视图)还有route.rb(路由)是什么关系,代码执行顺序是怎样的?

答:在浏览器输入http://localhost:3000/home/index链接,会根据home/index对应到route.rb文件中的get “home/index” => "home#index”路由,根据路由home#index找到home_controller中的index方法,方法中可能会有实例变量传递给view模板,也就是views/home/index.html.erb文件。这是ruby on rails的规则,都是根据home和index找到对应的文件,所以文件名称(比如home/index.html.erb、home_controller)要按照规则来,不能乱改。

(2)如果出现错误如何去查看错误原因以及排除错误呢?

答:我们先制造一个错误,在路由(config/route.rb)文件中代码改成,将英文双引号" 改成中文双引号“

#原代码
get "home/index" => "home#index"
#改成
get "home/index" => "home#index”

然后重启项目(ctrl+c停止项目,rails s启动项目),在终端会出现以下错误,SyntaxError错误是语法错误,程序写的不合规范就会报此错误。下面是错误的详情,明确指出了是config/routes.rb文件中的第5行少了一个end。SyntaxError我们打开config/routes.rb文件,看到里面第二行有一个中文双引号,导致字符串没有正常结束,导致第五行的end被当成了字符串,我们将第二行的双引号换成英文的,然后重启项目就可以了。
当我们遇到错误的时候,首先看终端返回的信息,一般都会明确指出错误的具体位置,后面我们在项目中遇到的错误,会具体情况具体分析。

注意:

当我们重新修改了routes.rb、controller、config文件等都需要重新启动项目。修改views文件不需要重新启动项目。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵宁一

点赞是最好的赞赏~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值