1

首先,我对 Rails 和 ruby​​ 很陌生。

我正在尝试为自定义 URLS 创建一个 slug。

我有一个带有名字和姓氏的用户模型。这个模型也有一个蛞蝓。

我想做的是让它检查我的数据库,看看是否有一个要创建的 slug 实例,例如。看看有多少 Joe 博客存在。如果没有,则获取 urlwhatever.com/joe-blogs 如果超过 0,则获取 countwhat.com/joe-blogs-COUNT 的

我在打蛞蝓时试图做什么

  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 

我试图修复它,但没有这样的运气 - 有什么建议或指示吗?

谢谢!

4

2 回答 2

8

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

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

  def full_name
    "#{first_name} #{last_name}"
  end
end

gem 将负责为您进行参数化。这个 RailsCast也可能有帮助。

于 2013-01-09T06:43:31.627 回答
0

在模型中编写这些方法

before_validation :generate_slug

def name
"#{first_name} #{last_name}"
结束

def generate_slug
self.slug = self.name.downcase.gsub(/\s+/, '-').gsub(/[^a-zA-Z0-9_]+/, '')
end

于 2014-03-01T13:04:54.550 回答