Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 从模型中排除列_Ruby On Rails_Ruby_Ruby On Rails 4_Rails Activerecord - Fatal编程技术网

Ruby on rails 从模型中排除列

Ruby on rails 从模型中排除列,ruby-on-rails,ruby,ruby-on-rails-4,rails-activerecord,Ruby On Rails,Ruby,Ruby On Rails 4,Rails Activerecord,我正在用RubyonRails编写一个简单的API,我希望能够自动隐藏列,使其不可见,例如,如果我想选择我从不想共享密码、salt或任何其他个人信息的用户 在Laravel中,您可以使用受保护的变量“$guarded”,我想知道这在Rails中是否可行 编辑:我正在使用JSON显示数据。如果要构建API端点,可以执行以下操作: 在控制器中: @user = User.find(params[:id]).to_api_json 在用户类中,以散列形式返回所需内容: def to_api_json

我正在用RubyonRails编写一个简单的API,我希望能够自动隐藏列,使其不可见,例如,如果我想选择我从不想共享密码、salt或任何其他个人信息的用户

在Laravel中,您可以使用受保护的变量“$guarded”,我想知道这在Rails中是否可行


编辑:我正在使用JSON显示数据。

如果要构建API端点,可以执行以下操作: 在控制器中:

@user = User.find(params[:id]).to_api_json
在用户类中,以散列形式返回所需内容:

def to_api_json
  { "id": id, "email": email } # add whatever attributes you want to this hash
end

您可以根据要返回的数据格式进行调整,但这是最基本的想法。

您通常会使用serialiser,在那里您可以精确地指定要在响应中返回的列

我认为这是目前的默认情况,但还有其他情况,如:

假设您的api是JSON api

您也可以像这样使用
as_json

def show
  @resource.as_json(only: [:id, :name])
end