【发布时间】:2011-10-02 03:35:11
【问题描述】:
我想根据标题字段创建 slug,因此这些 slug 必须是唯一的。
当 validates_uniqueness_of 失败时是否有回调方法,以便我可以在 slug 的末尾附加一个字符以使其唯一?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 slug
我想根据标题字段创建 slug,因此这些 slug 必须是唯一的。
当 validates_uniqueness_of 失败时是否有回调方法,以便我可以在 slug 的末尾附加一个字符以使其唯一?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 slug
听起来像这样的 before_create 回调比验证更好。如果名字是骗子,它实际上并不是无效的;你只需要统一它。
【讨论】:
您不必使用validates_uniqueness_of,您可以随时自己做,然后自定义消息。例如:
validate :field_uniqueness
private
def field_uniqueness
if self.exists?(:conditions => {:username => self.username})
errors.add(:username, :name_taken, :username => "#{self.username}1")
end
end
如果用户名已被使用,建议用户名末尾附加“1”。
【讨论】: