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)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容