rails应用程序中的自定义URL

时间:2016-05-18 06:27:53

标签: ruby-on-rails url

我试图在rails中编写一个简单的CMS,允许使用文本网址而不是标准/posts/show/<id>
我有一个标题和正文的模型,我想替换标题中的空格并将其用作网址 我也希望在根级别拥有网址,而不是过去/ pages / show。

4 个答案:

答案 0 :(得分:4)

看看这个gem friendly_id,用于从存储在数据库中的模型字段创建url。否则,您可以创建您想要的示例获取的路线&#39;页面/显示&#39;,主页#index和指向您想要的任何位置。

答案 1 :(得分:1)

虽然friendly_id gem真的很棒,但对于这么简单的需求来说却很重要。您可以考虑采用更轻松的替代方法:https://github.com/johnotander/urls_for_humans

答案 2 :(得分:1)

您可以通过如下设置覆盖您的rails网址:

get 'posts' => 'posts#index'

在你的路线中。

但是既然你想格式化show动作的url(取决于帖子中每个项目的特定id),你最好的选择是使用真棒 friendly_id gem。

请参阅:https://github.com/norman/friendly_id

一些资源:

答案 3 :(得分:0)

我已经想出了如何做我想做的事 我正在使用类似(config/routes.rb)的参数设置到根网址的路由:

  get ':title', to: 'pages#show', as: :page

现在我有一个由rails generate scaffold Page title:string body:text生成的页面控制器 它有一个函数set_page我改为执行此(app/controllers/pages_controller.rb)

def set_page  
  @page = Page.find_by("title" => params[:title])  
end