我希望能够在网站的根目录中显示帖子固定链接。因此,例如,带有永久链接“hello-world”的帖子应该显示为“mysite.com/hello-world”,而不是“mysite.com/posts_controller/hello-world”。如何配置类似WordPress的永久链接?
我该如何去做这样的事情?
我希望能够在网站的根目录中显示帖子固定链接。因此,例如,带有永久链接“hello-world”的帖子应该显示为“mysite.com/hello-world”,而不是“mysite.com/posts_controller/hello-world”。如何配置类似WordPress的永久链接?
我该如何去做这样的事情?
我相信你的帖子模型中已经有了“slug”字段。 如果您的帖子控制器具有进去,你只需要添加正确的路径,例如:
match '/:slug' => "Posts#show"
否则,如果没有塞在你的模型,你可以使用Stringex plugin。这是一个简单的方法来自动创建您的帖子slug。
class Post < ActiveRecord::Base
acts_as_url :title
end
这将创建一个从你的标题塞并将其保存到slug列。
在你可以找到正确的岗位像这样的控制器:
def show
@post = Post.find_by_slug(params[:slug])
end
在你的路线:
match '/:slug' => "Posts#show"
然后在你的控制器,你可以这样做:
Post.find_by_slug(params[:slug])
注意:您将需要生成该渣屑值,并将其存储在Post
模型。
另请参阅friendly_id,了解如何使用此功能(如果您需要更复杂的功能)。
可以嚼这对我来说只是一点点吗?请求以/ post-title /形式出现,然后将路由发送到'show'控制器,然后控制器应该知道如何处理它?只需在控制器中使用params [:whatever]? – 2011-06-04 21:03:26