详细用法点我和点我
以下主要是给现有的model
添加friendly_id
首先做一些准备工作
-
gem 'friendly_id', '~> 5.1.0'
&&bundle install
-
rails g friend_id
,然后重新启动服务器 - 假设给
Blog
增加friendly_id
,那么需要给Blog
增加一个slug
的字段:
rails g migration add_column_slug_to_blogs slug:string:uniq
rake db:migrate
接下来对models/blog.rb
进行一些修改
- 先在文件中增加
extend FriendlyId
- 然后增加
如果觉得title可能会有重复,可以再进行一次变换后使用。下面是用title和当前日期转换后的形式组合起来当成friendly_id :title, use: :slugged
friendly_id
,如下:friendly_id :slug_candidates, use: :slugged def slug_candidates time = Time.now.strftime("-%M%S%m%d%H") title + time end
最后对controllers/blog_controller.rb
进行修改
- 把
@blog = Blog.find(params[:id])
改成:@blog = Blog.friendly.find(params[:id])
如果想对已经存在的blogs
增加相应的slug
,在rails c
或者增加一个Rake task
,运行Blog.find_each(&:save)