my story blog

JavaScriptとかRubyの技術的なことを書きたい

Controllerでjsonを返す場合に返すカラムを指定したい

RailsでControllerからjsonを返す場合、Modelの戻りをそのまま返すと データとして使わないcreated_dateやupdated_dateも返ってしまうので、無駄な転送が発生してしまう。

もしくは以下のように、jsonのオプションでexceptを使うことによって指定の列を返さないようにできる。

def users
  render json: User.limit(5), except:[:created_date, :updated_date]
end

逆に指定の列のみを返したい場合、onlyを使う

def users
  render json: User.limit(5), except:[:id, :name]
end