我的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实例并修改其值?
答案 0 :(得分:0)
如果您想要从模型而不是update_attributes
方法单独更新年龄,那么在模型方法中,您必须在对象上调用save
,以便保持更改。
def update_age
self.age = 50
self.save
end
没有@user.update_attributes(user_params)
已经更新了用户的年龄。检查您的user_params
以确认允许年龄作为参数。 @user.update_attributes(user_params)
是否会抛出任何错误?