Ruby on rails 友好的id,检查两个型号/表格中是否存在SLUG
想象一下下面的路线:Ruby on rails 友好的id,检查两个型号/表格中是否存在SLUG,ruby-on-rails,friendly-id,Ruby On Rails,Friendly Id,想象一下下面的路线: get ':slug/:location' 其中:搜索根据提供的slug在两种不同型号(即Businnes、Person)上触发finder 我目前面临的问题是,我找不到一种方法来检查两个不同的模型是否存在slug,同时生成一个新的slug tl;博士: 我试图避免两个不同的模型使用相同的slug 非常感谢您的帮助。您要做的是在您的每个模型中运行一个自定义验证器,该验证器将应用于您的业务模型中,例如: before_save :unique_slug private
get ':slug/:location'
其中:搜索根据提供的slug在两种不同型号(即Businnes、Person)上触发finder
我目前面临的问题是,我找不到一种方法来检查两个不同的模型是否存在slug,同时生成一个新的slug
tl;博士:
我试图避免两个不同的模型使用相同的slug
非常感谢您的帮助。您要做的是在您的每个模型中运行一个自定义验证器,该验证器将应用于您的业务模型中,例如:
before_save :unique_slug
private
def unique_slug
self.slug = self.name + "-" + self.id unless
self.find_by_slug(:slug).blank? and Person.find_by_slug(:slug).blank?
end
end
是的,但当它发现一个已经存在的slug时,友好id的行为就不是这样了(我并不是这么想的)。我希望friendly id只生成一个新的id(即通过附加uuid)。在这种情况下,您可以让它将id设置为其他id。如果出现错误,我将更新我的答案,让它这样做。