很抱歉,如果这是非常明显的,但我是Rails的初学者,并且我很难找到这个问题的答案。
我在创建操作上收到一个AbstractController :: DoubleRenderError,它应该同时创建一个新用户(接收他们的电子邮件地址,密码和密码确认)并创建一个新的配置文件(其中包含一个数字)我要求用户在创建帐户时选择的其他偏好。我基本上想要取回用户和个人资料jsons,如果他们都成功创建,并收到错误,如果他们不是。
我知道我得到的错误是由于双重"渲染json"我有一条线(if下面有一个区块,其他区域下有一个区块),但似乎无法确定如何将这两条线合为一条。
def create
@user = User.new(register_params)
@profile = Profile.new(profile_params)
if @user.save && @profile.save
render json: @user, status: :created, location: @user
render json: @profile, status: :created, location: @profile
else
render json: @user.errors, status: :unprocessable_entity
render json: @profile.errors, status: :unprocessable_entity
end
end
提前谢谢!
答案 0 :(得分:0)
你不能每个控制器渲染两次,如果你需要返回两个模型的结果,你可以写这样的东西
def create
@user = User.new(register_params)
@profile = Profile.new(profile_params)
if @user.save && @profile.save
render json: user: @user, profile: @profile, status: :created
else
render json: user: @user.errors, profile: @profile.errors, status: :unprocessable_entity
end
end