Slug基于两个值

Jam*_*mie 1 ruby-on-rails slug

首先,我对rails和ruby非常陌生.

我正在尝试为自定义URL创建一个slug.

我有一个带有first_name和last_name的用户模型.这个模型也有一个slug.

我想要做的是让它检查我的数据库,看看是否有一个slug的实例,例如.看看有多少Joe博客存在.如果没有,它会获得url whatever.com/joe-blogs,如果大于0,则获得count的值:whatever.com/joe-blogs-COUNT

我试图给我的slu it做什么

  def generate_slug
    NoSlug == Users.sum("slug").where(:slug => first_name-last_name.perameterize)
      if NoSlug == 0
        self.slug ||= first_name-last_name.perameterize
      else NoSlug > 0
        self.slug ||= first_name-last_name-NoSlug.perameterize
      end
  end 
Run Code Online (Sandbox Code Playgroud)

我试图解决它,但没有这样的运气 - 任何建议或指针?

谢谢!

小智 7

我一直在使用FriendlyId宝石并且很高兴.如果你想结合名字和姓氏,你可以做类似的事情

class User < ActiveRecord::Base
  extend FriendlyId
  friendly_id :full_name, use: :slugged

  def full_name
    "#{first_name} #{last_name}"
  end
end
Run Code Online (Sandbox Code Playgroud)

宝石将负责为您进行参数化.这个RailsCast可能也会有所帮助.