如何使用Ruby on Rails构建基本网站

22

我是一名计算机科学专业的学生,想要学习一些关于网站开发的知识 – 我最喜欢通过实践来学习。我已经了解了基本的HTML/CSS/PHP/JavaScript/XML,但由于Ruby是我最喜欢的脚本语言之一,所以我决定学习Ruby on Rails。

我想为朋友在学校的俱乐部建立一个基本的网站,提供有关他们组织和提供的服务的信息,并在其中具有包含非常基本库存系统(项目、库存数量、成本 - 就是这样)的管理面板,以便学习Ruby on Rails。我将在校园上的电脑上托管它,所以我不必担心托管问题。

这可能听起来有点傻,但作为一个从未建过网站的人,我想知道如何使用Rails建立网站 - 比如,如何为主要部分创建基本布局,例如“首页、关于我们、服务、联系我们、俱乐部执行委员会”之类的内容?我必须用HTML制作并放入“视图”部分吗?我读过的Rails教程(开始Rails)实际上使基本库存系统似乎比这一部分容易,并使用Rails和脚手架的许多内置功能。 Rails文档有点令人困惑。

7个回答

37

如果你想开始构建Rails应用程序,"官方"的Rails书非常好。 链接

但实际上操作如下:

  1. 使用rails applicationname创建Rails应用程序。
  2. 创建控制器。对于您而言,一个控制器已足够,例如将其命名为main:ruby script/generate controller main
  3. 现在你在app/controllers中有了一个名为main_controller.rb的控制器。在此处插入您希望此控制器响应的操作。如果您不希望控制器执行任何操作,只需显示视图,则将方法留空。

    class Main < ActionPack::Controllers
    def index
    end
    def about
    end
    def contact
    end
    (...)
    end
    
  4. 现在您有一个控制器,将响应于index、about和contact。

  5. app/views/main/index.erb(以及其他地方,如about.erb)中为此控制器创建视图。
  6. 如果您愿意,可以直接使用HTML。
  7. 或者,您可以使用布局,在app/views/layouts/main.rhtml中定义。在此布局中使用HTML,但在您想要包含视图的任何位置,写入<%= yield %> 示例:

    <HTML>
    <BODY>
    <%= yield %>
    </BODY>
    </HTML>
    
  8. 您可以通过在类(在方法声明之前)中编写layout:main来将此布局包括在控制器中。

  • 如果你在应用程序的根目录下运行ruby script/server,你就可以访问你创建的页面了。当然它们是静态的,但这可能会帮助你入门。你需要向控制器添加模型和一些逻辑才能进一步发展。如果你对更多内容感兴趣,我建议你检查我提供的书籍链接,或者查看像merbhttp://merbivore.org)这样的rails替代品,它具有一些不错的功能,并且通常速度更快,但缺乏rails的成熟性。

  • 对我而言,只有在 Rails 中使用 script/generate controller main 才有效。 - migueloop

    2

    我拿起了《Rails敏捷Web开发》,这本书非常好。它介绍了如何构建一个在线购物车。


    1
    如果你还没有了解过Model-View-Controller架构,那么作为大多数Web框架(包括Ruby on Rails)的基础,你应该去了解一下。

    好的,我明白了MVC架构,但现在怎么办?如何构建一个非常基本的网站来实现某些功能。 - Khay
    这完全不是 OP 所询问的内容。 - HenryRootTwo

    1

    我觉得这个网站可能不是学习Ruby on Rails的最佳途径。 Rails非常适合CRUD应用程序(允许用户在数据库中创建、读取、更新和删除记录的应用程序)。由于您的网站看起来除了“联系我们”部分(我假设是一个带有某种确认页面的电子邮件表单)之外都是静态页面,实际上您会发现自己在与“Rails方式”进行斗争。

    理想情况下,在这种情况下,您可以将所有静态页面放入public/目录中,并为“联系我们”页面创建一个快速的Rails脚手架。

    但是通过这样做,您将无法获得类似于典型Ruby on Rails应用程序的完成项目,而且在最坏的情况下,您可能会发现自己不得不“重新学习”或至少“重新学习”Rails编程的许多方面。

    我认为使用几个资源构建CRUD应用程序(经典的"15分钟内构建Rails博客"是一个很好的开始。通过练习Rails约定并查看真正允许Rails发挥作用的工作流程和应用程序,您将学到更多。

    然后当需要构建另一个大部分静态的网站时,您将知道如何去做。

    这是我的个人意见。


    0

    从Mephisto开始入手。它将为您提供一个快速实现目标的框架...否则,您可能会在学习创建Rails网站所涉及的无数事物时感到困惑。


    0

    0

    我必须推荐Ramaze。如果你已经熟悉Ruby,但还不了解Rails,那么Ramaze更适合你,因为它更接近“家庭”,Ramaze应用程序更纯粹的是Ruby。

    对于数据库访问,你可以选择ORMs。Sequel是Ramazers中最受欢迎的,但也有DataMapper和M4DBI。

    正如Alan Alavi所说:你应该熟悉MVC,但只需深入并动手实践即可。


    学习另一个框架?哎呀! - Muhamed Krlić
    @l0oky 嗯,这个答案已经有6年了。 :) - Pistos
    呵呵,一定要喜欢挖掘stackoverflow :P - Muhamed Krlić

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接