发出 GET 请求时,控制器给出错误数量的参数错误

Controller gives wrong number of arguments error when GET request is made

我写了一个 rails-api 有两个资源 usersbooks。当我为 books 发出 GET 请求时它工作正常,但对于 users 它失败并显示以下消息:

Started GET "/users/" for 127.0.0.1 at 2015-11-18 23:45:52 +0530
Processing by UsersController#index as HTML
  User Load (0.5ms)  SELECT `users`.* FROM `users`
Completed 500 Internal Server Error in 63ms (ActiveRecord: 4.2ms)

ArgumentError (wrong number of arguments (0 for 1)):
  app/controllers/users_controller.rb:8:in `index'


  Rendered /Users/me/.rvm/gems/ruby-2.2.3/bundler/gems/rails-35ca78a07c8b/actionpack/lib/action_dispatch/middleware/templates/rescues/_source.erb (17.6ms)
  Rendered /Users/me/.rvm/gems/ruby-2.2.3/bundler/gems/rails-35ca78a07c8b/actionpack/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (3.1ms)
  Rendered /Users/me/.rvm/gems/ruby-2.2.3/bundler/gems/rails-35ca78a07c8b/actionpack/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.2ms)
  Rendered /Users/me/.rvm/gems/ruby-2.2.3/bundler/gems/rails-35ca78a07c8b/actionpack/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (69.4ms)

这是我在浏览器上遇到的错误:

UsersController#index 中的参数错误

参数数量错误(0 代表 1)

提取的源代码(第 8 行附近):

...       
  # GET /users
  def index        
    @users = User.all

    render json: @users # this is line 8
  end
    ...

config/routes.rb

Rails.application.routes.draw do
  resources :users
  resources :books
end

关于可能出了什么问题的任何线索?

可以尝试渲染@users.to_json

User.all 返回任何用户吗?

错误出在我传递给序列化程序的模型上。我的数据库中有一个名为 method 的列。 method 是造成问题的 rails 保留字(读作:ruby-and-rails-reserved-words)。我将我的专栏重命名为 registration_method,这解决了这个问题。感谢大家的帮助:)