Reactjs 使用强参数将FormData发送到Rails API时出现问题
我想创造一个角色,有名字和化身。这是我的密码: CharacterApi.js,在其中进行网络调用 字符\u controller.rbReactjs 使用强参数将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) 结束 当我发出创建请
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