2

私は自分のサイトにフレンドリーを使用しています。現在、URLにタイトルを表示しています

すなわち:/articles/hello-world

しかし、ページを作成すると、重複を避けるために乱数が生成されると言います

すなわち: /articles/75475848

フレンドリーIDを削除すると数字が表示されることはわかっていますが、

/記事/1

/記事/2

等...

/articles/23456789(random number)基本的に、代わりに表示するにはどうすればよいですか/articles/hello-world

ありがとう

4

2 に答える 2

5

記事ごとに UUID (Universally Unique Identifier) を生成するのが良い解決策のようです。

Ruby 標準ライブラリは UUID 生成メソッドを提供するので、データベース フィールドを作成し、before_saveコールバックを使用して各記事に独自の UUID を与えるだけです。このような:

class Article < ActiveRecord::Base
  before_save :set_uuid

  def set_uuid
    self.uuid = SecureRandom.uuid if self.uuid.nil?
  end
end

編集: @olleolleolle のコメントによると、外部依存関係は必要ありません!

于 2013-04-19T19:47:32.073 に答える
1

FriendlyID ドキュメントから:

class Person < ActiveRecord::Base
  friendly_id :name_and_location
  def name_and_location
    "#{name} from #{location}"
  end
end

bob = Person.create! :name => "Bob Smith", :location => "New York City"
bob.friendly_id #=> "bob-smith-from-new-york-city"

したがって、friendly_id乱数を生成するメソッドを提供すると、代わりにそのメソッドがスラッグの生成に使用されます。

于 2013-04-19T19:31:04.880 に答える