`

Hello, Rails

阅读更多

我们实在没办法——每次要试用一个新系统时,都得写一个“Hello, World!”程序。在Rails
中,这个程序会把我们诚挚的问候发送到浏览器上。

Rails应用的架构”中所介绍的,Rails是一个MVC框架。Rails接收来自
浏览器的请求,对请求进行解读以找到合适的控制器,再调用控制器中合适的方法。然后,控制器又调用
一个特定的视图,将结果显示给用户。好消息是,Rails已经帮我们搞定了绝大部分的“管道代码”,这
几部分已经被有机地结合在一起。现在,为了写出这个简单的“Hello, World!”应用,我们需要编写一个控制器和一个视图。我们不需要编写模型,因为我们不需要处理任何数据。那么就从控制器开始吧

就像用rails命令新建一个Rails 应用程序一样,我们也可以借助一个脚本来新建一个控制器。
这个脚本名叫generate,它就保存在demo 项目的script子目录中。所以, 要创建一个名为Say
的控制器,我们只需要在demo目录中运行这个脚本,将控制器的名称传递进去即可

demo> ruby script/generate controller Say
exists app/controllers/ 
exists app/helpers/ 
create app/views/say 
exists test/functional/
create app/controllers/say_controller.rb
create test/functional/say_controller_test.rb 
create app/helpers/say_helper.rb


脚本显示出了它所检查的文件与目录,以及它所添加的 Ruby 源代码和目录。现在,我们感兴趣的
是它创建的Ruby 源程序,以及新增的目录。
我们首先要关注的是控制器的源代码,它位于 app/controllers/say_controller.rb文件
中,让我们来看看这个文件:

所有代码如下:
class SayController < ApplicationController
end
几乎不能再小了,不是吗? SayController 是一个空的类,它从ApplicationController
继承而来,因此它自动地拥有所有默认的控制器行为。现在该我们动手了,我们需要在这个控制器中增加
一些代码,用来处理用户请求。这些代码应该做什么?现在什么都不需要做——我们只需要一个空的
action方法。所以,下一个问题就是:这个方法应该叫什么名字?这个问题的答案是:我们需要先来看
看Rails 处理请求的方式。

Rails和请求URL

Rails 会根据路径来判断控制器的名称,以及控制器内部将被调用的action 名称
5
,如图4.2
所示。在路径中,紧跟在应用程序名称后面的第一部分是控制器名称,第二部分是action 名称,如图


我们的第一个action
Our First Action

我们来给Say 控制器加上一个名为hello的action 。从前一节的讨论可以得知,如果在
SayController类中创建一个hello方法,就意味着加上了名为hello的action 。但这个方法应
该做什么?现在它什么都不需要做。请记住,控制器的职责就是为视图的显示提供充分信息。在我们的第
一个应用程序中,没有任何信息需要控制器提供,因此一个空的action方法就足够了。请用你最喜欢
的编辑器修改app/controllers目录下的say_controller.rb文件,在其中加上hello()方法并
保存:
work/demo1/app/controllers/say_controller.rb
class SayController < ApplicationController
  def hello
  end 
end

运行:ruby script/server
http://localhost:3000/say/hello

MVC 我们只写了C controller, M model没有,View我们还没写呢

在这里,我们创建了一个名为Say的控制器,因此视图就应该位于app/views/say
目录中。

为了完成这个“Hello, World!”应用程序,我们来创建一个模板。默认情况下,Rails会寻找
与当前action 同名的模板文件。在我们的例子中,这就意味着我们要创建一个名为
app/views/say/hello.html.erb
7
的文件(为什么是.html.erb?我们稍后就会解释)。现在,我们
只须在其中放入基本的HTML 代码。
work/demo1/app/views/say/hello.html.erb
<html>
  <head>
    <title>Hello, Rails!</title>
  </head>
  <body>
    <h1>Hello from Rails!</h1>
  </body>
</html>

保存hello.html.erb文件,刷新浏览器窗口,你就应该看到一句友好的问候。请注意,我们不需要重新启动应用程序就可以看到更新后的效果。在开发的过程中,每当你保存文件时,Rails就会自动将修改结果整合到正在运行的应用程序中去。


到目前为止,我们在两个文件中添加了代码:在控制器中添加了一个action,又创建了一个模板
以便在浏览器上显示页面。这些文件都位于预先定好的标准位置:控制器在app/controllers目录下,视图在app/views中各自的子目录下


  • 大小: 121.2 KB
  • 大小: 74.1 KB
  • 大小: 29.6 KB
  • 大小: 48.4 KB
  • 大小: 81.2 KB
0
0
分享到:
评论

相关推荐

    ruby rails demo

    ruby rails demo, rails 简单demo。 ...(2)安装Rails3 gem install rails...rails generate scaffold hello rails generate scaffold Post name:string title:string content:text rake routes 显示路由config/routes.rb

    rails_入门详细笔记(官网翻译).

    #### 九、Hello Rails 完成上述步骤后,打开浏览器访问 `http://localhost:3000/` 即可看到第一个 Rails 应用。 以上内容涵盖了 Rails 入门的基础知识和技术要点,为初学者提供了一个良好的起点。接下来可以进一步...

    Rails101_by_rails4.0

    为了确保读者能够通过实践加深理解,书中还安排了一系列练习作业,从最基础的“Hello World”开始,逐步过渡到更复杂的概念,如Rails的Routing(路由)机制。路由机制是Web应用中一个非常核心的概念,它定义了不同的...

    Rails 101 入门电子书

    #### 五、练习作业0-Hello World - **目标**: - 学习如何创建第一个Rails应用程序。 - **过程**: - 创建新项目。 - 设置数据库配置。 - 创建控制器和视图。 - 在浏览器中查看结果。 #### 六、Rails的路由 - ...

    Ruby on Rails入门例子

    - **ActiveRecord查询接口(Query Interface)**:ActiveRecord提供了丰富的查询API,如`User.find(1)`, `Post.where(title: 'Hello')`,用于从数据库检索数据。 - ** erb语法**:在视图文件中,我们可以使用erb...

    Rails 101S

    #### HelloWorld: 快速体验Ruby on Rails - **快速体验Ruby on Rails**:通过创建一个简单的应用来快速上手Ruby on Rails的基本工作流程。 - **创建项目**:使用`rails new`命令创建一个新的Rails项目。 - **配置...

    Ruby On Rails教程

    例如,创建一个简单的“Hello, Rails!”页面,用来验证环境配置是否正确。 - **链接页面:** Rails提供了强大的路由机制,用于定义URL与控制器方法之间的映射。通过定义路由规则,可以轻松地在不同的页面之间导航。 ...

    Ruby_On_Rails笔记

    Rails的HelloWorld示例展示了一个基础的Rails项目创建和运行过程。创建项目时,首先在指定目录下运行“rails demo”命令,生成项目结构。Rails项目包含了许多默认文件和目录,这些文件和目录遵循特定的命名和组织...

    rails敏捷开发,我的成功之路

    **标题与描述**:本书通过一个简单的“Hello, Rails”示例来引导读者快速上手,掌握创建新应用的基本流程。 **详细说明**: - **创建新应用**:使用`rails new`命令初始化一个新的Rails应用,该命令会自动生成基本...

    Ruby on Rails入门经典

    Ruby on Rails,简称Rails,是一种基于Ruby...从简单的“Hello, World!”程序开始,逐渐深入到复杂的业务逻辑,你会感受到Ruby on Rails带来的效率和乐趣。不断实践,理论结合实际,你将在Web开发的世界中大展拳脚。

    HeadFirst系列之:深入浅出Rails(中文版)高清完整PDF

    你甚至可以舒适并熟练地使用Ruby——但你是在Web编程的上下文中去做这些,而不是另一个无聊的“Hello,World!”。 本书的特别之处 我们认为你的时间如此宝贵以至于不应该花费在为新概念伤脑筋上面。《深入浅出Rails...

    Head.First.Rails中文版.2011.12

    2. **Rails环境搭建**:学习如何安装Ruby、Rails以及相关的开发工具,如Git、SQLite、TextMate或Sublime Text等,创建第一个“Hello, World!”应用。 3. **Rails生成器**:Rails提供了许多命令行工具,如`rails ...

    深入浅出Rails(中文版)

    你甚至可以舒适并熟练地使用Ruby——但你是在Web编程的上下文中去做这些,而不是另一个无聊的“Hello,World!”。 《深入浅出Rails(影印版)》的特别之处 我们认为你的时间如此宝贵以至于不应该花费在为新概念伤脑筋...

    hello world hello world

    4. **Web应用开发**:如果“BookShop”是一个Web应用,那么可能涉及到HTML、CSS和JavaScript的前端开发,以及后端语言(如PHP、Node.js、Ruby on Rails)和框架(如Django、Express.js)的选择和使用。 5. **数据库...

    Ruby on Rails 指南 v5.0.1 中文版

    - **Hello, Rails!**:通过一个简单的“Hello, World!”示例,让读者快速上手Rails的基本操作流程。 - **启动并运行起来**:详细讲解如何启动Rails服务器以及如何访问开发中的应用程序。 - **添加第二个模型**:介绍...

    Struts2和Rails的国际化实现

    Struts2和Rails都是流行的Web开发框架,它们都提供了强大的功能来支持应用程序的国际化,使得开发者可以轻松地为不同语言的用户提供本地化体验。这里我们将深入探讨这两个框架的国际化实现。 **Struts2的国际化实现...

    Flex3与Rails结合

    ### Flex3与Rails结合:构建HelloWorld应用 在探索如何将Adobe Flex3与Ruby on Rails(简称Rails)结合,创建动态Web应用的过程中,一个常见的入门案例便是“HelloWorld”。此案例不仅展示了这两种技术如何协同工作...

    rails资料集合最新

    通过阅读,开发者可以了解到如何搭建Rails环境,创建第一个“Hello, World!”应用,以及如何进行CRUD(Create, Read, Update, Delete)操作。 3. **blog.rar**:这是一个名为“blog”的RAR压缩文件,RAR是一种流行...

    rails有用的命令

    在Ruby on Rails框架中,命令行工具是开发者日常工作中不可或缺的一部分。Rails命令允许我们快速地构建应用程序、管理数据库、生成代码以及执行各种自动化任务。以下是一些关键的Rails命令及其详细解释: 1. **创建...

Global site tag (gtag.js) - Google Analytics