我在我的usercontroller中有一个对象实例
@user = User.new
,我正在尝试调用像这样的用户模型的方法
def update
@user = current_user
respond_to do |format|
if @user.update_attributes(user_params)
@user.update_age
format.html { redirect_to @user}#, notice: 'User was successfully updated.' }
format.json { render :show, status: :ok, location: @user }
else
format.html { render :edit, notice: 'Update unsuccessful' }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
这是方法本身:
def update_age
self.age = 50
end
结果,该值保持不变并且不会改变。如何从用户模型中的控制器访问@user实例并修改其值?
如果要与模型分开更新年龄,而不是update_attributes
方法,则在模型方法中,您必须在对象上调用save
,以便更改持续。
def update_age
self.age = 50
self.save
end
@user.update_attributes(user_params)
没有更新用户的年龄。检查您的user_params
,以验证年龄作为参数。@user.update_attributes(user_params)
是否会抛出任何错误?