2016-04-24 20 views
0

有沒有人曾經爲friendly_id使用過random_slug(https://github.com/josei/random_slug)?它是在5年前最後更新的,所以我不確定是否浪費時間來嘗試它,或者即使有更好的解決方案?Rails友好編號寶石的隨機彈出鏈接4

基本上我有friendly_id在它的方面工作拿起我的帖子的標題,我有一個範圍,所以這些帖子是唯一的用戶,但我非常希望這些帖子是一個隨機生成的網址類似的東西類似到YouTube的網址我想 - 這是可能的友好的ID或者我對這個錯誤的方式,還有其他的東西,會讓我的生活100倍更容易?

+0

爲什麼DNT你剛剛團狀使用 - >'摘要:: SHA1.hexdigest(在此輸入文字)[0..8 ]' – 7urkm3n

+0

有什麼地方我可以閱讀更多關於此?我是新人,並試圖通過一個項目來學習。謝謝你的幫助! –

+0

ü想slu your你的帖子網址? – 7urkm3n

回答

3

該插件將無法工作,至少不會自行。它被設計成一個與當今寶石不兼容的rails 2插件 - 但是如果你看看它的lib,它所做的一切就是生成一個隨機字符串,正如在評論中指出的那樣,你可以使用SHA1摘要。我喜歡安全隨機。 (同一概念)

你的模型會是這個樣子

class Post < ActiveRecord::Base 
    extend FriendlyId 
    friendly_id :generated_slug, use: :slugged 
    def generated_slug 
    require 'securerandom' 
    @random_slug ||= persisted? ? friendly_id : SecureRandom.hex(15) 
    end 
end 
+0

完美,謝謝!我現在會詳細瞭解這一點 - 感謝你和7urkm3n! –

0

您可以用這種方式,傳遞title和每個崗位的id,它會爲你生成新的uniq塞連title將是相同的,傳遞額外id的原因。

請覈實自己的列名title否則不服......

class Post < ActiveRecord::Base 
    extend FriendlyId 
    friendly_id :slugging, use: [:slugged, :history, :finders] 

    def slugging 
     Digest::SHA1.hexdigest("#{title} #{id}")[0..8] 
    end 
end