使用rails g scaffold kittens
强参数功能时,kitten_params
为
def kitten_params
params.fetch(:kitten, {})
end
我熟悉强参数,
params.require(:kitten).permit(:name, :age)
但我不确定如何使用fetch
方法。
答案 0 :(得分:21)
但我不确定如何使用
fetch
方法进行此
简单。您没有使用fetch
。由于您在创建脚手架时未提供任何属性,因此rails不知道将哪些内容放入permit
部分并生成该代码,这对于这种情况最为明智。当您向小猫表单添加一些字段时,请将kitten_params
升级为正常的强对数“形状”。
params.require(:kitten).permit(:name, :age)
答案 1 :(得分:5)
根据Documentation,您应该只在末尾添加.permit,例如:
params.fetch(:kitten, {}).permit(:name, :age)
答案 2 :(得分:2)
根据documentation,如果没有对象实例,则不能使用.require
。
然后.fetch
为未创建的对象(#new
和#create
操作)提供默认参数。