我对我的控制器使用了很多AJAX POST请求(在Rails 4中)。几乎所有行动的回应部分都有重复:
class UsersController < ApplicationController
def show
@user = current_user
end
def remove_avatar
user = current_user
user.avatar = nil
if user.save
render json: { success: true }
else
render json: { success: false }
end
end
def make_admin
user = current_user
user.admin = true
if user.save
render json: { success: true }
else
render json: { success: false }
end
end
# lot of other similar actions
end
重复部分是用布尔值渲染的json,这取决于模型实例是否成功保存。在JavaScript文件中,我根据收到的JSON响应处理响应并执行不同的操作。
我可以以某种方式简化此代码吗?
答案 0 :(得分:5)
写一次渲染json并在成功响应中你必须只写@ user.save返回true或false
render json: {success: user.save}