我的用户具有从嵌套模型文档附加的头像(使用回形针)。
在我的注册#edit动作中,我有:
#registrations#edit
@user.avatar ||= @user.build_avatar
标准表单包括输入文件字段以及其他:name
,:email
字段。
在我的注册#update action中,我有:
# registrations#update
if @user.update_attributes(account_update_params)
set_flash_message :notice, :updated
# Sign in the user bypassing validation in case his password changed
sign_in @user, bypass: true
redirect_to after_update_path_for(@user)
else
respond_to do |format|
format.js
format.html { render :edit }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
当我尝试编辑用户并且表单字段的验证失败时,注册#edit view我呈现,正确打印错误消息,但嵌套数据@ user.avatar未在view =>中重新加载没有文件输入。
我想这是因为我只构建并且没有保存/创建@ user.avatar。 我试图使用重定向,但然后我丢失了我的错误消息......
以下是我的注册#update action:
def update
if @user.update(user_params)
respond_to do |format|
format.html { redirect_to user_path(current_user), notice: "ok" }
format.json { render :edit, status: :ok, location: user_path(current_user) }
end
else
# rebuild of the nested resource avatar
@user.avatar ||= @user.build_avatar
respond_to do |format|
format.html { render :edit }
format.json { render json: @partner.errors, status: :unprocessable_entity }
end
end
end
处理此问题的最有效/最有效的方法是什么?
感谢您的帮助