我正在使用数据库从头开始创建博客。我知道如果我在网址中包含主键,我可以轻松地从数据库中检索信息:
www.url.com/entry?id=1
在这种情况下,返回使用主键1存储的信息。我是否也可以检索这些信息,但没有'条目?id ='?
我想要实现的是提取相同的信息,但网址是
www.url.com/this-is-my-first-entry
有什么办法吗?或者我是否必须使用“这是我的第一个条目”来创建一个页面。作为它的文件名?如果是这样,有没有办法让我的网站自动为每个新条目创建页面?
答案 0 :(得分:0)
不,您不必为每个网址创建一个网页。
基本上,/entry?id=1
和/this-is-my-first-entry
与网络服务器相同。它只是一条路,服务器并不关心如何处理它。
您的代码必须处理此问题(或者更确切地说,是选择框架的路由组件的规则)。
例如,在轨道中,这是一个明智的选择。这是路由规则。
get '/:page' => 'pages#show'
如果您有此规则,则现在可以请求包含任何名称的网页/this-is-my-first-page
,/hello-world
或/you-wont-believe-what-happened-next
。所有人都有相同的规则。页面"名称"将映射到参数page
。然后你就像处理page
一样处理参数id
(通过它或其他方式从数据库中获取页面)。