Ruby on rails 在RubyonRails中从Desive向用户添加额外的参数
我想在用户模型中添加属性名。我运行了migration命令,将列添加到数据库中,这很有效。将属性添加到用户本身也起到了作用,但它没有保存在数据库中 如何将属性“name”添加到RegistrationController的Ruby on rails 在RubyonRails中从Desive向用户添加额外的参数,ruby-on-rails,ruby,devise,Ruby On Rails,Ruby,Devise,我想在用户模型中添加属性名。我运行了migration命令,将列添加到数据库中,这很有效。将属性添加到用户本身也起到了作用,但它没有保存在数据库中 如何将属性“name”添加到RegistrationController的注册和帐户更新的必需参数中 这是我的用户模型 class User < ActiveRecord::Base devise :database_authenticatable, :registerable, :recoverable, :rememb
注册
和帐户更新
的必需参数中
这是我的用户模型
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessor :name
end
在路线上我加了一条线
design_用于:用户、控制器:{registrations:'users/registrations'}
但是用户的姓名仍然没有保存在数据库中。请检查
您可以尝试以下方法:
class Users::RegistrationsController < Devise::RegistrationsController
def sign_up_params
devise_parameter_sanitizer.for(:sign_up).push(:name)
end
def account_update_params
devise_parameter_sanitizer.for(:account_update).push(:name, :email, :password, :password_confirmation, :current_password)
end
end
类用户::注册控制器<设计::注册控制器
def注册参数
为(:注册)设计参数消毒剂。推送(:名称)
结束
def帐户更新参数
为(:帐户\更新)设计\参数\消毒器。推送(:名称,:电子邮件,:密码,:密码\确认,:当前密码)
结束
结束
请检查
您可以尝试以下方法:
class Users::RegistrationsController < Devise::RegistrationsController
def sign_up_params
devise_parameter_sanitizer.for(:sign_up).push(:name)
end
def account_update_params
devise_parameter_sanitizer.for(:account_update).push(:name, :email, :password, :password_confirmation, :current_password)
end
end
类用户::注册控制器<设计::注册控制器
def注册参数
为(:注册)设计参数消毒剂。推送(:名称)
结束
def帐户更新参数
为(:帐户\更新)设计\参数\消毒器。推送(:名称,:电子邮件,:密码,:密码\确认,:当前密码)
结束
结束
将其添加到您的应用程序控制器
中,以配置注册
登录
和帐户更新
参数
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:name,:email, :password, :password_confirmation) }
devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:login, :username, :email, :password, :remember_me) }
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:name, :username, :anonymous, :email, :password, :password_confirmation,:reset_password_token) }
end
并将添加到ApplicationController
之前,如:
before_filter :configure_permitted_parameters, if: :devise_controller?
将此添加到应用程序控制器
以配置注册
登录
&帐户更新
参数
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:name,:email, :password, :password_confirmation) }
devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:login, :username, :email, :password, :remember_me) }
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:name, :username, :anonymous, :email, :password, :password_confirmation,:reset_password_token) }
end
并将添加到ApplicationController
之前,如:
before_filter :configure_permitted_parameters, if: :devise_controller?
它是通过脚手架或手动创建的?设备是从脚手架创建的?设备是通过脚手架或手动创建的?设备是从脚手架创建的我收到此错误没有为用户提供消毒液。在这个答案中,尝试将的参数从:user
更改为:sign\u
和:帐户更新
@sajan感谢您指出这一点。我已经编辑了答案。我得到了这个错误没有为用户提供消毒剂。在这个答案中,请尝试将的参数从:user
更改为:sign\u up
和:account\u update
@sajan感谢您指出这一点。我已编辑了答案。似乎只有在我删除了在用户模型中添加的属性后才起作用。。但它确实如此有效,谢谢!似乎只有在我删除了在用户模型中添加的属性后才起作用。。但它确实如此有效,谢谢!