Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
Reactjs 使用强参数将FormData发送到Rails API时出现问题_Reactjs_Carrierwave_Form Data_Strong Parameters_Rails Api - Fatal编程技术网

Reactjs 使用强参数将FormData发送到Rails API时出现问题

Reactjs 使用强参数将FormData发送到Rails API时出现问题,reactjs,carrierwave,form-data,strong-parameters,rails-api,Reactjs,Carrierwave,Form Data,Strong Parameters,Rails Api,我想创造一个角色,有名字和化身。这是我的密码: CharacterApi.js,在其中进行网络调用 字符\u controller.rb def创建 @character=@character.new(字符参数) 如果@character.save 渲染:显示 其他的 呈现json:@character.errors,状态::无法处理的_实体 结束 结束 [. . .] 私有的 def字符参数 获取(:character,{}).permit(:name,:avatar) 结束 当我发出创建请

我想创造一个角色,有名字和化身。这是我的密码:

CharacterApi.js,在其中进行网络调用

字符\u controller.rb

def创建
@character=@character.new(字符参数)
如果@character.save
渲染:显示
其他的
呈现json:@character.errors,状态::无法处理的_实体
结束
结束
[. . .]
私有的
def字符参数
获取(:character,{}).permit(:name,:avatar)
结束
当我发出创建请求时,它会给我一个
422:unprocessable entity
错误。但是,调试告诉我,实际发送的参数是正确的,执行以下操作可以使一切恢复正常:

def创建
@character=@characters.new
@character.name=params[:name]
@character.avatar=params[:avatar]
[. . .]
结束
尽管第二种方法有效,但它对我来说并不实用,因为我希望在将来添加更多的参数

如果我将参数作为简单JSON发送,则无法获取任何文件(总是给我一个空值),但第一个方法有效,这次:

有了它,我无法发送图像或任何文件,但rails的初始语法再次起作用

发送FormData时,短语法
@character.new(character_params)
不起作用的原因是什么


我使用载波处理rails API中的文件。提前感谢您的帮助

您以错误的方式使用强参数

它必须是:

def character_params
  params.require(:character).permit(:name, :avatar)
end
function addCharacter(name, avatar) {
  return authenticatedFetch({
    path: '/teams/characters’,
    method: 'post',
    data: {name, avatar}
  });
}
def character_params
  params.require(:character).permit(:name, :avatar)
end