• Rails 开发工作的大部分集中在创建和编辑 apps 目录下的文件。

  • 先来了解一下这个目录下的结构。
    Apps 目录下包含四个主要目录,它们分别是 Controllers, models, views, helpers

    1:Controllers 目录存放 rails 应用中相应的 controller 类,controller 类处理来自用户的 web 请求。
    2:views 目录存放相应的模板文件,模板文件填充数据后,转换为 html 格式传递给用户的浏览器。
    3:models目录存放数据模型类,模型类封装了数据库中的数据。很多框架在数据模型层都做的比较复杂,用过 rails 后,你会发现它非常容易使用。
    4:helpers 目录存放了简化 Controllers, models, views 使用的帮助类。

    编辑 controller 类
    开始使用 Rails 之前,我们需要了解一下 rails 是如何将 controller 类中的方法和 url 映射到一起的,这对于理解 rails 工作原理很重要。
    rails 在生成的 skeleton 框架中包含了一个 scripts 目录,这个目录中包含了很多脚本程序,它们可以帮助我们来简化很多工作,我们已经使用过了 script\server 这个脚本,它是用来启动 webrick 服务器的。现在我们看看如何生成默认的 controller 文件
    打开新的 DOS 命令行,在C:\student目录下运行 ruby script\generate controller MyTest

    C:\student\app\controllers 目录中将生成一个包含 MyTestController 类定义骨架的名为 my_test_controller.rb 的文件
    鼠标右键点击此文件,选择”edit” 打开编辑此文件。




    在浏览器中访问 http://127.0.0.1:3000/My_Test/

    浏览器响应没有找到对应的 index 方法,不要担心,这不是什么大问题,因为默认生成的控制器类,不包含任何方法。不过这里我们了解到,如果不输入任和 url 连接的话,默认rails 需要在控制器类中找一个 index 的方法。这很容易理解,类似于 apache 服务器中目录下面的 index.html 文件一样。
    我们现在编辑这个 MyTestController 类。
    如图:



    重新刷新刚才的页面 http://127.0.0.1:3000/My_Test/ ,你会看到如下结果



    在浏览器中运行 http://127.0.0.1:3000/My_Test/keywen



    了解到 rails 是如何将 url 和控制器中的函数做简单映射的。

    需要做一些解释,在运行 ruby script\generate controller MyTest 的时候, rails 做了一些默认的假设。 MyTest 对应的 controller 文件是 my_test_controller.rb, 文件中控制器类名是 MyTestController,而 url 映射是 /My_Test/ .
    这些默认规定的好处是:我不需要编辑复杂的配置文件,只要对相应的文件做编辑就可以了。只需要关注程序逻辑,而不是其它什么,这就是 rails 设计原则中的“约定优于配置”。

    另外我们也感觉到 ruby 动态语言的好处,这点是 java 所无法办到的。我们在编辑完 controller 后,重新刷新页面,就可以使程序生效。对于编译型的 java 语言来说,不重新编译,重新启动服务器是无法做到这点的。Rails 开发的易用性可见一斑了,要知道启动和编译都是非常耗费时间的,尤其对于那些 EJB 服务器来说更是如此。