复选框的条款和条件,没有数据库中的列

vec*_*ran 16 ruby ruby-on-rails

我需要在页面上选中"我接受服务条款"复选框,必须进行检查以便订单继续进行.因此,在数据库中使用一列来匹配此列似乎是不合逻辑的(无论用户是接受还是拒绝了术语).

我在我的视图中使用这样的表单助手:

<%= check_box("client", "terms") %>
Run Code Online (Sandbox Code Playgroud)

在我的模型中:

validates_acceptance_of :terms
Run Code Online (Sandbox Code Playgroud)

目前它根本不起作用.

这似乎是一个非常常见的代码片段,但我无法在没有模型中的条款的情况下在任何地方使用它.否则,我可以使用javascript来验证它,但更愿意将它保留在模型中.

Pau*_*ves 14

这应该可以正常工作,没有数据库列或attr_accessor:http://guides.rubyonrails.org/active_record_validations.html#acceptance

我倾向于检查你的params hash应该是什么,即'terms'属性是在'client'散列中传递的,也许尝试添加raise params.inspect你的控制器创建动作来帮助你调试?

  • 当前的rails使用[略有不同的格式](http://guides.rubyonrails.org/active_record_validations_callbacks.html#acceptance):`validates:terms_of_service,:acceptance => true` (4认同)

ale*_*dev 5

如何attr_accessor :terms在您的客户端模型中使用?