FriendlyId简单使用

详细用法点我和点我
以下主要是给现有的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
  • 然后增加
      friendly_id :title, use: :slugged
    
    如果觉得title可能会有重复,可以再进行一次变换后使用。下面是用title和当前日期转换后的形式组合起来当成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)

你可能感兴趣的:(FriendlyId简单使用)