首页 文章

Rails json api只返回created_at和updated_at

提问于
浏览
0

我打开了一个json API来获取自行车的数据 . API工作正常,它返回json,但由于某种原因,它只返回某些字段,即created_at和updated_at字段 .

这是我的数据库中的内容:

=> #<Bike id: 1, status: "available", location: 0, model: nil, created_at: "2015-02-04 08:21:27", updated_at: "2015-02-04 08:21:27", network_id: nil>

这是我的API返回的内容:

{"id":1,"created_at":"2015-02-04T08:21:27.183Z","updated_at":"2015-02-04T08:21:27.183Z"}

这是我的控制器代码:

before_action :set_bike, except: [:index, :create]

respond_to :json

def show
  respond_with(@bike)
end

def set_bike
  @bike = Bike.find(params[:id])
end

def bike_params
  params.require(:bike)
  .permit(:status, :model, :network => [:name], :location => [:latitude, :longitude])
end

我的路线默认为json . 在我的自行车模型中,没有额外的as_json方法 . 任何想法都是我错过'状态'和'位置'的原因

1 回答

  • 1

    要进行调试,您可以将模型的结果输出到控制台to_json

    def show
      # Temporary debug, to be removed
      pp @bike.to_json
    
      respond_with(@bike)
    end
    

    无论您发现什么,我建议您使用 render 而不是 respond_with 来解决您的问题,如下所示:

    def show
      render json: @bike
    end
    

相关问题