2015-09-29 55 views
1

我使用friendly_id(4.0.10.1),這是我的課:如何使用friendly_id gem設置slu limit限制?

class Article < ActiveRecord::Base 

    extend FriendlyId 
    friendly_id :name, use: [:slugged, :history] 

end 

一個49個字符我怎麼設置限制了蛞蝓場? Gem工作正常,只是需要設置gem管理的這個限制,而不是在代碼中增加額外的步驟。

回答

1

您可以使用Active Record驗證。例如,validates_length_of,無論是在slug本身,還是值來自列,然後在列上。

另一種解決方案是在這裏

def normalize_friendly_id(string) 
    super[0..49] 
end 

我發現這些通過谷歌搜索剛纔。

https://github.com/norman/friendly_id/issues/190

+0

謝謝你!它適用於大多數場景。但是,當兩個對象試圖存儲相同的段塞時會出現問題。爲了通過在字符串的末尾添加「 - 2」來創建一個新的slug,它最後是一個52個字符的長度。 – fabianraf