2013-01-09 76 views
1

首先,我對rails和ruby非常陌生。S Based基於兩個值

我正在嘗試爲自定義網址創建一個slu slu。

我有一個姓氏爲&姓氏的用戶模型。這個模型也有一個slu。。

我想要做的是得到它來檢查我的數據庫,看看是否有一個實例的slu to創建例如。看看有多少喬博客存在。如果沒有它得到的URL whatever.com/joe-blogs,如果有超過0它得到了數whatever.com/joe-blogs-COUNT

什麼,我試圖做的價值當gerating我的slu 012

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 

我試圖解決它,但沒有這樣的運氣 - 任何建議或指針?

謝謝!

回答

6

我一直在使用FriendlyId gem,並已高興。如果你想結合名字和姓氏,你可以做類似

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

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

該寶石將照顧你的參數。 This RailsCast也可能有所幫助。

0

寫入模型這些方法

before_validation:generate_slug

DEF命名
「#{first_name的}#{last_name的}」

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