Rails 4控制器操作重复JSON响应

时间:2015-08-13 10:32:13

标签: ruby-on-rails json

我对我的控制器使用了很多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响应处理响应并执行不同的操作。

我可以以某种方式简化此代码吗?

1 个答案:

答案 0 :(得分:5)

写一次渲染json并在成功响应中你必须只写@ user.save返回true或false

render json: {success: user.save}