2015-07-12 44 views
0

我在User模型下的数据库中添加了一个borrower boolean和lender boolean。我希望用户在注册(设计)时能够通过复选框选择他们是借方还是贷方。使用Devise和Rails的复选框帮助器方法更新Boolean属性

%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, ...) 

此外,我该如何让他们选择借款人还是贷款人,以便他们不能选择两者?

+0

你会在设计或控制器中找到strong_params方法。请张贴它。 – Pavan

+0

是的!谢谢。我做了一点不同,但你完全正确。上面发布了解决方案。 – Liroy

回答

0

试试下面的代码

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

更新:

不允许的参数:借款人,贷款人

你将不得不自定义默认设计strong_params方法许可证borrower,lender。像下面的东西。

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

不,只是试过。不过谢谢! – Liroy

+0

@liroy你可以用控制器代码和服务器日志更新你的帖子吗? – Pavan

+0

@liroy请勿在此留言。请使用日志和控制器代码(特别是strong_params代码)更新您的问题。 – Pavan