我有Rails 4.1的项目。我需要实现这样的url ... / items /。我知道我可以手动制作,但我太懒了。
是否每个人都知道如何使用friendly_id获取slug的UUID?
感谢您的回答。
答案 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