1

创建 RecommendPost 时,用户输入 a video_url,这是一个 youtube 视频链接和 triggers before_save :get_video_id,用于处理video_url以获得video_id

比如用户创建@recommend_post,填写https://www.youtube.com/watch?v=R9ITLdmfdLI,然后:get_video_id被触发,然后我们得到video_id R9ITLdmfdLI。最后,所有内容都保存到@recommend_post

问题是,validates_uniqueness_of :video_id在这里不起作用。(我想要一个 youtube 视频只能推荐一次。)我猜验证被 before_save 方法绕过了?

以及如何验证video_id

4

1 回答 1

1

before_save被调用并在验证运行后video_id填充。在这种情况下,您正在验证nil的唯一性,这将通过 if 。:allow_nil => true

在验证之前使用before_validate回调来填充。video_id

于 2013-07-23T04:47:47.810 回答