详细用法点我和点我
以下主要是给现有的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: :sluggedfriendly_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)








网友评论