尽管允许,但我的控制器的参数中的密码被删除
Password being removed from parameters in my controller despite being allowed
在我的 KidsController 中我有
def kid_params
params.require(:kid).permit(:firstname,
:lastname,
:gender,
:pseudo,
:birthdate,
:avatar,
:password,
:longitude,
:latitude,
:parent_id)
end
而kid的定义如下:
class Kid < ActiveRecord::Base
has_secure_password
end
然而,当我尝试 POST 一个 json 创建一个新的 Kid 时,我得到一个 密码不能为空 错误。
日志显示:
Started POST "/kids" for 127.0.0.1 at 2015-05-12 14:28:34 +0900
Processing by KidsController#create as HTML Parameters:
{"firstname"=>"testpaw", "lastname"=>"qwdqwd",
"password"=>"[FILTERED]", "kid"=>{"firstname"=>"testpaw",
"lastname"=>"qwdqwd"}}
但是一旦我进入实际的创建方法,我的参数就减少到 {"firstname":"testpaw","lastname":"qwdqwd"}
什么是从我的参数中过滤密码?
从 rails 控制台创建一个 Kid 工作正常...
在您当前的设置中,password
被过滤,因为它不是 kid
命名空间的一部分。如果它应该是 kid
命名空间的一部分,那么您需要在您的视图中更改它。
在我的 KidsController 中我有
def kid_params
params.require(:kid).permit(:firstname,
:lastname,
:gender,
:pseudo,
:birthdate,
:avatar,
:password,
:longitude,
:latitude,
:parent_id)
end
而kid的定义如下:
class Kid < ActiveRecord::Base
has_secure_password
end
然而,当我尝试 POST 一个 json 创建一个新的 Kid 时,我得到一个 密码不能为空 错误。
日志显示:
Started POST "/kids" for 127.0.0.1 at 2015-05-12 14:28:34 +0900 Processing by KidsController#create as HTML Parameters: {"firstname"=>"testpaw", "lastname"=>"qwdqwd", "password"=>"[FILTERED]", "kid"=>{"firstname"=>"testpaw", "lastname"=>"qwdqwd"}}
但是一旦我进入实际的创建方法,我的参数就减少到 {"firstname":"testpaw","lastname":"qwdqwd"}
什么是从我的参数中过滤密码? 从 rails 控制台创建一个 Kid 工作正常...
在您当前的设置中,password
被过滤,因为它不是 kid
命名空间的一部分。如果它应该是 kid
命名空间的一部分,那么您需要在您的视图中更改它。