UUID的友好ID

时间:2014-08-05 12:57:12

标签: ruby-on-rails friendly-id

我有Rails 4.1的项目。我需要实现这样的url ... / items /。我知道我可以手动制作,但我太懒了。

是否每个人都知道如何使用friendly_id获取slug的UUID?

感谢您的回答。

3 个答案:

答案 0 :(得分:0)

您需要覆盖Item模型中的to_param方法并返回实例的UUID。

默认的to_param方法返回对象的id。

答案 1 :(得分:0)

<强> friendly_id

friendly_id基本上只是将:id参数替换为.find method for ActiveRecord中的:slug。我想您要问的是,如果您想使用:uuid属性进行查找,则需要执行以下操作:

#app/models/your_model.rb
Class YourModel < ActiveRecord::Base
   friendly_id :uuid, use: [:slugged, :finders]
end

这将允许您执行以下操作:

#config/routes.rb
resources :your_controller #-> domain.com/your_controller/:id

您也可以通过link_to方法和:uuid方法将:id传递给.find。除此之外,我不知道会出现什么问题?

答案 2 :(得分:0)

按照标准说明为您的模型创建slug列。

将friendly_id添加到您的模型中:

extend FriendlyId
friendly_id :uuid, use: [:slugged, :finders]

我们的模型没有uuid列,但是如果没有设置slug,我们可以指定能够生成它的方法。

def uuid
  slug || SecureRandom.uuid
end