Rails自定义模型验证器取决于check_box值



假设我有一个模型"博客"带有:title和:body。让我们还说,在我的视图中,我有标题、正文和check_box_tag的输入,看起来像这个

<%= check_box_tag "published" %>

现在,我想为:body编写一个自定义验证,该验证应该仅在我的复选框"出版的";检查。

问题是-由于:published不是模型属性,我如何获得ckeckbox的值?

你不能。你也不应该。

验证确保构建逻辑在模型实例的上下文中。不是请求。如果你想为验证提供任何其他上下文,你必须将其传递到模型中,并且在执行验证回调之前,数据必须保存在某个地方。这并不一定意味着它必须是一个数据库列。

如果你确实想在控制器中获得一个参数,可以根据输入的name属性在参数哈希中找到它们。

params[:published]

最新更新