在我的KidsController中,我有
def kid_params
params.require(:kid).permit(:firstname,
:lastname,
:gender,
:pseudo,
:birthdate,
:avatar,
:password,
:longitude,
:latitude,
:parent_id)
end
虽然小孩的定义如下:
class Kid < ActiveRecord::Base
has_secure_password
end
但是当我尝试POST一个json来创建一个新的Kid时,我得到一个密码不能为空错误。
日志显示:
开始发布&#34; / kids&#34;对于2015.05-05 14:28:34 +0900的127.0.0.1 由KidsController处理#create as HTML参数: {&#34;名字&#34; =&gt;&#34; testpaw&#34;,&#34;姓氏&#34; =&gt;&#34; qwdqwd&#34;, &#34;密码&#34; =&gt;&#34; [过滤]&#34;,&#34;孩子&#34; =&gt; {&#34;名字&#34; =&gt;&#34; testpaw&#34 ;, &#34;姓&#34; = GT;&#34; qwdqwd&#34;}}
但是一旦我进入实际的创建方法,我的参数已减少到{"firstname":"testpaw","lastname":"qwdqwd"}
什么是从我的参数中过滤密码? 从rails控制台创建一个Kid工作正常...
答案 0 :(得分:1)
在您当前的设置中,password
已被过滤,因为它不属于kid
命名空间。如果它应该是kid
命名空间的一部分,那么您需要在视图中更改它。