使用Devise和Rails的复选框助手方法进行布尔属性更新

时间:2015-07-12 05:09:00

标签: ruby-on-rails ruby checkbox

我在用户模型下为我的数据库添加了借用者布尔值和lender布尔值。我希望用户在注册(设计)时通过复选框选择他们是借款人还是贷款人。

%p Are you a Borrower or Lender?
= f.check_box :borrower
Borrower
= f.check_box :lender
Lender

检查相关方框并提交表格后,布尔值保持不变。

class AddBorrowerToUsers < ActiveRecord::Migration
 def change
 add_column :users, :borrower, :boolean, :default => false
end
end

编辑:

日志状态为Unpermitted parameters: borrower, lender

如何扩展Devise控制器以允许这些?

解决方案:

创建了一个新的控制器并包含了新的参数。

class RegistrationsController < Devise::RegistrationsController

private

def sign_up_params
params.require(:user).permit(:borrower, :lender, :email, ...)

另外,我如何让他们在借款人或贷款人之间做出选择,以便他们不能同时选择两者?

1 个答案:

答案 0 :(得分:0)

尝试以下代码

%p Are you a Borrower or Lender?
= f.check_box :borrower, {}, "true", "false"
Borrower
= f.check_box :lender, {}, "true", "false"
Lender

<强> 更新

  

未经许可的参数:借款人,贷款人

您必须将默认设计strong_params方法自定义为 许可 borrowerlender。像下面的东西。

def configure_permitted_parameters
   devise_parameter_sanitizer.for(:sign_up) { |u| u.permit( :email, :password, :password_confirmation, :first_name, :last_name, :borrower, :lender ) }
end