【发布时间】:2013-10-25 23:41:03
【问题描述】:
想象以下路线:
get ':slug/:location'
其中 :search 会根据提供的 slug 在两个不同的模型(即 Businnes、Person)上触发查找器。
我目前面临的问题是,我无法找到一种方法来检查两个不同模型的现有 slug,同时生成一个新的。
tl;博士: 我试图避免两种不同的模型被赋予相同的蛞蝓的情况。
任何帮助表示赞赏。
【问题讨论】:
想象以下路线:
get ':slug/:location'
其中 :search 会根据提供的 slug 在两个不同的模型(即 Businnes、Person)上触发查找器。
我目前面临的问题是,我无法找到一种方法来检查两个不同模型的现有 slug,同时生成一个新的。
tl;博士: 我试图避免两种不同的模型被赋予相同的蛞蝓的情况。
任何帮助表示赞赏。
【问题讨论】:
您想要做的是在您的每个模型中运行一个自定义验证器,这个将进入您的业务模型,例如:
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
【讨论】: