繁体   English   中英

如何配置类似 WordPress 的永久链接?

[英]How to configure WordPress-like permalinks?

我希望能够在网站的根目录中显示帖子永久链接。 因此,例如,带有永久链接“hello-world”的帖子应该显示为“mysite.com/hello-world”,而不是“mysite.com/posts_controller/hello-world”。

我将如何 go 做这样的事情?

我相信您的帖子 model 中已经有一个“slug”字段。 如果您的帖子 controller 考虑到了这一点,您只需添加正确的路线,例如:

match '/:slug' => "Posts#show"

否则,如果您的 model 中没有 slug,您可以使用Stringex 插件 这是为您的帖子自动创建 slug 的简单方法。

class Post < ActiveRecord::Base
  acts_as_url :title
end

它将根据您的标题创建 slug 并将其保存到 slug 列。

在 controller 您可以找到正确的帖子,如下所示:

def show
  @post = Post.find_by_slug(params[:slug])
end

在您的路线中:

match '/:slug' => "Posts#show"

然后在您的 controller 中,您可以执行以下操作:

Post.find_by_slug(params[:slug])

注意:您需要生成此 slug 值并将其存储在Post model 中。

还可以查看friendly_id ,了解一种久经考验的方法(如果您需要更复杂的东西)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM