Json文件输出为[null,null,null,null]

Pet*_*sma 0 ruby json ruby-on-rails

我正在尝试从我的网站保存并输出一些数据但是当我查看我显示的movies.json文件时,

[null,null,null,null,null,null,null,null]
Run Code Online (Sandbox Code Playgroud)

对于我的数据库中的每个ID,这都是null.

这是来自Rails服务器的日志,

Started GET "/movies.json" for 127.0.0.1 at 2015-08-25 07:52:48 +0200
  ActiveRecord::SchemaMigration Load (0.1ms)  SELECT "schema_migrations".* FROM "schema_migrations"
Processing by MoviesController#index as JSON
  User Load (0.4ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = ?  ORDER BY "users"."id" ASC LIMIT 1  [["id", 1]]
  Movie Load (0.1ms)  SELECT "movies".* FROM "movies"
Completed 200 OK in 116ms (Views: 10.1ms | ActiveRecord: 4.5ms)
Run Code Online (Sandbox Code Playgroud)

在我的application_controller.rb中我有

respond_to :html, :json
Run Code Online (Sandbox Code Playgroud)

我的movies_controller.rb

class MoviesController < ApplicationController

  def index
    respond_with Movie.all
  end

  def create
    respond_with Movie.create(movie_params)
  end

  private
  def movie_params
    params.require(:movie).permit(:title)
  end

end
Run Code Online (Sandbox Code Playgroud)

我的movie.rb模型,

class Movie < ActiveRecord::Base

  def as_json(options = {})
  end

end
Run Code Online (Sandbox Code Playgroud)

如果我检查Movie.all我的Rails控制台,我确实看到了所有正确的值,因此它不会在JSON输出中输出.

Mih*_*scu 5

您将覆盖as_json一个没有返回任何内容的空实现.

如果您确实需要覆盖默认序列化程序,则必须指定要序列化的字段

def as_json(options = {})
 { :username => username, :name => first_name + " " + last_name }
end
Run Code Online (Sandbox Code Playgroud)

如果默认实现对您来说足够,请删除

def as_json(options = {})
end
Run Code Online (Sandbox Code Playgroud)