我正在使用数据库从头开始创建一个博客。我知道,如果我在URL中包含主键,我可以轻松地从数据库中检索信息:
www.url.com/entry?id=1
在这种情况下,返回以1的主键存储的信息。我是否也可以检索这些信息,但没有"输入?id ='??
)我要实现的是提取相同的信息,但是让URL像
之类的东西www.url.com/this-is-my-first-entry
有什么方法可以做到吗?还是我必须将其作为文件名创建一个页面?如果是这样,是否有一种方法可以让我的网站自动为每个新条目创建页面?
不,您不必每个URL创建一个页面。
本质上,/entry?id=1
和/this-is-my-first-entry
与Web服务器相同。这只是一条路径,服务器不在乎如何处理。
是您的代码必须处理此操作(或者是路由选择框架的组件的规则)。
在铁轨中,这是不费吹灰之力的。这是路由规则。
get '/:page' => 'pages#show'
如果您有此规则,则可以使用任何名称,/this-is-my-first-page
,/hello-world
或/you-wont-believe-what-happened-next
请求页面。都具有相同的规则。页面"名称"将映射到参数page
。然后,您将参数 page
视为对待 id
(从数据库中或其他任何数据库获取页面)。