Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用Desive gem将其他属性保存到用户模型_Ruby On Rails_Ruby On Rails 4_Devise - Fatal编程技术网

Ruby on rails 使用Desive gem将其他属性保存到用户模型

Ruby on rails 使用Desive gem将其他属性保存到用户模型,ruby-on-rails,ruby-on-rails-4,devise,Ruby On Rails,Ruby On Rails 4,Devise,我已经通过Desive gem创建了一个用户模型,允许注册时使用电子邮件、名字和密码 def configure_permitted_parameters devise_parameter_sanitizer.for(:sign_up) << :first_name end 为了在编辑/更新期间接受用户模型中的其他属性,是否仍需要创建UsersController参数.require(:user.permit!)!在用户控制器中,我注意到heroku生产中出现了这种中断

我已经通过Desive gem创建了一个用户模型,允许注册时使用电子邮件、名字和密码

 def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_up) << :first_name
 end
为了在编辑/更新期间接受用户模型中的其他属性,是否仍需要创建UsersController 然后,我可以在尝试更新时允许所有内容

def user_params
  params.require(:user).permit!
end
谢谢

试试这个:

class ApplicationController < ActionController::Base
  protect_from_forgery
  before_filter :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:user) << :first_name
  end
end
class ApplicationController设计参数消毒剂。对于(:user)将以下过滤器添加到应用程序控制器:

before_action :configure_permitted_parameters, if: :devise_controller?

  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_up) { |u| u.permit( :first_name, :email, :password, :password_confirmation) }
  end
这是报名用的。要更新用户信息,请在configure_Allowed_parameters筛选器中添加以下代码行

devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:first_name, :email, :password, :password_confirmation, :current_password) }

如果我再添加20个属性呢?我必须把它们都列出来吗?有更简单的方法吗?目前我只是使用>>参数.require(:user.permit!)!在用户控制器中,我注意到heroku生产中出现了这种中断?你有过同样的经历吗?
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:first_name, :email, :password, :password_confirmation, :current_password) }