当我尝试通过回形针 gem 为我的用户模型(在头像属性下)上传图像时,我意识到一些非常奇怪的事情。由于某种原因, User.update 和 @user.update_attributes 的行为有所不同。有谁知道为什么会这样?
#using @user.update_attributes(user_avatar_params)
def update_profile_pic
@user = User.find(params[:id])
@user.update_attributes(user_avatar_params)
puts @user.avatar_file_name.nil? # prints false as expected
respond_to do |format|
format.html { redirect_to :back }
format.js
end
end
#using User.update(@user.id, user_avatar_params)
def update_profile_pic
@user = User.find(params[:id])
User.update(@user.id, user_avatar_params)
puts @user.avatar_file_name.nil? # prints true although successfully saves
respond_to do |format|
format.html { redirect_to :back }
format.js
end
end
这是 user_controller.rb 中我的强参数
def user_avatar_params
params.require(:user).permit(:avatar)
end
就其价值而言,从 Rails 4.0.2 开始,#update http://apidock.com/rails/v4.2.1/ActiveRecord/Persistence/update回报false
如果更新失败,则不仅仅是更新失败的对象。进一步值得注意的是,#update_attributes http://api.rubyonrails.org/classes/ActiveRecord/Persistence.html#method-i-update_attributes只是一个别名#update http://apidock.com/rails/v4.2.1/ActiveRecord/Persistence/update now.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)