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
在我的 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