20小时学会编程 互动版

创建页面

我从确定必需路径的明细表开始。“home(主页)”的路径非常简单:我将它重新导向/home(主页)/个性化需求,因为我想要主页显示主记录。

“创建页面”路径连接侧边栏顶部的小表格。用户在表格当中输入网页标题,然后点击按钮。系统收到网页标题之后会将其个性化,然后在数据库当中保存标题、个性化需求以及创建时间。之后它会发送一个包含该个性化需求的GET请求以显示新的页面。

在“创建网页”的路径当中,有一个微小的细节相当重要:如果这个网页已经存在了呢?如果这个网页已经含有数据的话,我不想将其覆盖。意外的数据丢失是让人无法接受的。

幸运的是,DataMapper使用内置的方法.first_or_create解决了这一问题。在创建页面之前,DataMapper会首先检查它是否已经存在。如果页面存在,DataMapper不会覆盖它,而且Sinatra会将浏览器重新导向已经存在的页面。问题解决。

“显示页面”路径读取URL(统一资源定位器)的个性化需求(Slug),从数据库当中检索记录,然后在主内容区域显示信息。迟一些我会增加一些花哨的格式,但现在我只想要它可以工作。