rails 练习2 --完成CRUD功能

来源:互联网 发布:手机号码搜索软件 编辑:程序博客网 时间:2024/06/06 18:06

目标

基本上,动态网站里的Database(数据库)都是做同样的事情。需要储存与提供纪录,大都依据以下四种行为:

C(Create,建立)新的纪录到Database
R(Read,读取)或是显示Database上的某笔纪录
U(Update,更新)目前已有的纪录
D(Destroy,删除)某笔纪录
因为这四种动作(简称CRUD)是如此的常见,Rails的Scaffold(鹰架)指令自动帮我们将这四个功能做出来了


步骤

步骤1

在终端机打这些字:

rails server

步骤2

打开浏览器前往http://localhost:3000/topics

应该会看到标题为“Listing topics”的页面,底下有title与description,还有一个new topic的连接(如下图):

这里写图片描述

步骤3

点击“New Topic”
在表单上写入一些东西,并按下“Create Topic”
应该会看到你新建的的topic与信息:“Topic was successfully created.”:
这里写图片描述

步骤4

  • 点击“Back”
  • 应该会回到标题为“Listing topics”的页面,这时底下title跟description会列出刚刚建的新数据:
    Screenshot of topic list with new topic

这里写图片描述

  • 试试看点击“Show”,“Edit”,与“Destroy”连接会发生什么事
  • 恭喜你成功建出一个基本的动态网站!

解说

这些页面是如何跟数据库的CRUD做结合?Rails的Scaffold(鹰架)帮你做了一些事情。
让我们仔细看看这过程中Rails建了什么档案

  • app/models/topic.rb

这个档案包含了我们的Model Topic。如果打开此档案,会发现几乎空空如也,跟Database做CRUD方面的沟通功能都内置在Rails里了(译注:可以看该档案的第一行,就是让它去继承Rails Model的基本功能)

  • app/views/topics

这个View文件夹包括了所有topics的前端视觉档案。包括刚刚在建立数据时所用的表单。这些都由Rails的Scaffold(鹰架)自动建立出来的。
如果你写过HTML,有许多内容看起来会很熟悉。Rails Views其实就是在HTML里嵌入物件(来自于database的数据),来让页面可以在不同数据内容下动态显示

  • app/views/topics/index.html.erb

此档案是列出全部topic数据的页面
Index是一个“预设”的网站页面名称,当你前往http://localhost:3000/topics时,实际上会呼叫到topics/index.html.erb这个档案并变成实际的页面

  • app/views/topics/show.html.erb

当你在Index上点击“Show”连接时出现的页面

  • app/views/topics/new.html.erb

当你点击“New Topic”连接时出现的页面

  • app/views/topics/edit.html.erb

当你点击“Edit”连接时出现的页面

  • app/views/topics/_form.html.erb

你也许会发现Edit跟New这二个页面看起来都很像,因为它们都有相同的form(表单)。来自于这个档案被称为“Partial”的档案。只要在文件名前面加上_(下底线),就会变成Partial,而它只会用于某页面的一部份,不会变成独立的页面
小小挑战:你可以找出是在new.html.erb跟edit.html.erb中,是哪一行呼叫了form这个Partial吗?

  • app/controllers/topics_controller.rb

这个档案是由Rails的Scaffold(鹰架)自动建立出来的
你会看到里面有各种与View对应的method(def开头),但除了_form.html.erb

0 0
原创粉丝点击