2016-04-24 8 views
0

friendly_idにrandom_slug(https://github.com/josei/random_slug)を使ったことがありますか? 5年前に最後に更新されましたので、試してみるのは時間の無駄ですか、より良い解決策があるのか​​どうか分かりません。Rails 4のフレンドリーなid gemのランダムなスラッグURL

基本的に私はfriendly_idを使って自分の投稿のタイトルを集めていますが、その投稿がユーザーに固有のものであるようにスコープを設定していますが、これらの投稿はランダムに生成されたURL YouTubeのURLへ私はそう思います - これはフレンドリーなIDで可能ですか?これについては間違った方法で行っていますが、私の人生を100倍簡単にする何かがありますか?

+0

- > 'ダイジェスト:: SHA1.hexdigest(TEXTはHERE GOES)[0..8 ] ' – 7urkm3n

+0

私はこれについてもっと詳しく読むことができますか?私は新しく、プロジェクトを通して学びたいと思っています。ご協力いただきありがとうございます! –

+0

あなたのポストURLをスラッグしたいですか? – 7urkm3n

答えて

3

このプラグインは、少なくともそれ自身では機能しません。それは今日の宝石と互換性のないレール2プラグインとして設計されていましたが、あなたがそれを見ているならば、そのすべてがSHA1ダイジェストを使ってコメントで指摘されたようにランダムな文字列を生成しています。私は安全なランダムが好きです。 (同じ概念)

あなたのモデルは、あなたがtitle、各ポストのidを渡して、この方法を使用することができます

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が同じになり、あなたに新しいuniqのスラグを生成します。投稿の余分なidを渡す原因。

メイクは必ずご自身の列名を使用uはちょうどスラグのために使用する理由DNT 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 
関連する問題