FriendlyId 开源项目教程
项目介绍
FriendlyId 是一个 Ruby gem,用于为 ActiveRecord 模型生成友好的、人类可读的 URL。它允许你使用模型的属性(如名称或标题)作为其 URL 的一部分,而不是使用默认的数字 ID。这不仅使 URL 更加用户友好,而且有助于 SEO。
项目快速启动
安装
首先,将 FriendlyId 添加到你的 Gemfile 中:
gem 'friendly_id', '~> 5.4.0'
然后运行 bundle install
。
配置
假设你有一个 Post
模型,你可以这样配置 FriendlyId:
class Post < ApplicationRecord
extend FriendlyId
friendly_id :title, use: :slugged
end
在 db/migrate
目录下创建一个迁移文件,添加 slug
字段:
class AddSlugToPosts < ActiveRecord::Migration[6.0]
def change
add_column :posts, :slug, :string
add_index :posts, :slug, unique: true
end
end
运行 rails db:migrate
。
使用
在你的控制器中,使用 friendly
方法来查找记录:
class PostsController < ApplicationController
def show
@post = Post.friendly.find(params[:id])
end
end
应用案例和最佳实践
应用案例
FriendlyId 广泛应用于需要用户友好 URL 的场景,例如博客、新闻网站、电子商务平台等。通过使用 FriendlyId,可以显著提升用户体验和网站的 SEO 效果。
最佳实践
- 唯一性:确保每个 slug 是唯一的,以避免 URL 冲突。
- 国际化:如果你的应用支持多语言,考虑使用多语言友好的 slug 生成策略。
- 性能优化:定期清理不再使用的 slug,以保持数据库的整洁和查询效率。
典型生态项目
FriendlyId 通常与其他 Ruby on Rails 生态项目一起使用,例如:
- Devise:用于用户认证,结合 FriendlyId 可以生成用户友好的个人资料页面 URL。
- ActiveAdmin:用于管理后台,结合 FriendlyId 可以生成友好的管理页面 URL。
- Rails SEO Helper:用于 SEO 优化,结合 FriendlyId 可以进一步提升网站的 SEO 效果。
通过结合这些生态项目,可以构建出更加强大和用户友好的 Ruby on Rails 应用。