Rails:为帖子自定义 URL

Rails: Custom URL For Posts

在我的 rails 应用程序中,我有一个 posts 部分允许用户提交内容。默认情况下,URL 对新 post 的约定类似于 yoursite/posts/8。我想知道是否有人知道是否有一种方法可以让用户为此创建自定义 URL 路由,例如创建一个新的 post 然后使用 [=19 的字符串=] 所以它变成了 'yoursite/posttopic'. 有谁知道如何去做这件事吗?谢谢!

Post 架构如下所示:

  create_table "posts", force: :cascade do |t|
    t.string   "title"
    t.text     "body"
    t.datetime "created_at",         null: false
    t.datetime "updated_at",         null: false
    t.integer  "user_id"
    t.string   "image_file_name"
    t.string   "image_content_type"
    t.integer  "image_file_size"
    t.datetime "image_updated_at"
  end

使用friendly_id gem. Updated example from its Quick start guide:

# edit app/models/post.rb
class Post < ActiveRecord::Base
  extend FriendlyId
  friendly_id :title, use: :slugged
end

Post.create! title: "posttopic"

# Change Post.find to Post.friendly.find in your controller
Post.friendly.find(params[:id])
rails server

现在你可以使用这个了:

GET http://localhost:3000/posts/posttopic