Ruby on rails 从模型中排除列
我正在用RubyonRails编写一个简单的API,我希望能够自动隐藏列,使其不可见,例如,如果我想选择我从不想共享密码、salt或任何其他个人信息的用户 在Laravel中,您可以使用受保护的变量“$guarded”,我想知道这在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
编辑:我正在使用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