我在我的应用中使用了friendly_id
,但我正在拆分注册流程,以便将其拆分为单独的步骤。
因此,当首次创建记录时,它会在禁用验证的情况下完成,然后注册过程的后续步骤填入空白,然后在最后一步,我调用更新,以便在以防万一的情况下进行验证一路上都被遗漏了。
不幸的是,虽然没有为我的记录创建slug。从某些挖掘中,似乎正在生成友好ID before_validation
。所以它永远不会被召唤!
我怎样才能解决这个问题?
我在文档中看到你可以将slug设置为nil然后保存它会重新生成,但是当我在调用update之前这样做时,它会抛出一条验证消息,因为slug是零!在调用更新之前我还尝试了以下操作,但仍然没有任何乐趣:
if @channel.slug.blank?
@channel.slug = nil
@channel.save
end
关于我能做什么的任何想法?
答案 0 :(得分:7)
您可以通过执行
手动触发friendly_id生成object.send :set_slug
然后保存而不进行验证
object.save(:validate => false)
答案 1 :(得分:0)
我把它固定到最后,你需要添加一个!保存之后,以下工作:
if @channel.slug.blank?
@channel.slug = nil
@channel.save!
end
有点遗憾我必须进行额外的数据库调用,但至少它正在运行!
非常感谢那些看起来很
的人