Rails - 添加一个复选框以形成并检查是否在帖子上进行了检查

时间:2014-06-23 15:22:28

标签: ruby-on-rails forms devise

我有一个常见问题:我正在使用设计,我想为"条款和条件"添加一个复选框。

除了片刻之外,它到处都很好。如果我做

<%= f.check_box(:terms_and_conditions )%>

然后我得到一个错误::terms_and_conditions没有定义。我应该在哪里定义它?该模型?控制器?

1 个答案:

答案 0 :(得分:3)

尝试使用acceptance验证方法:

class User < ActiveRecord::Base
  validates :terms_and_conditions, acceptance: true
end

如Rails指南中所述

  

此验证非常特定于Web应用程序,并且此“接受”不需要记录在数据库中的任何位置(如果您没有字段,则帮助程序将只创建虚拟属性)。

此外,您需要将:terms_and_conditions参数添加到允许的参数中以进行注册:

class ApplicationController < ActionController::Base  
  before_action :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
     devise_parameter_sanitizer.for(:sign_up) << :terms_and_conditions
  end
end