ruby-on-rails - 为多个 Rails 对象呈现 JSON

标签 ruby-on-rails ruby json

这可能是一个非常简单的问题,但这正是我注意到的困扰我的问题。

我正在尝试从我的 Controller 的一个方法中呈现 JSON,但它给了我一个“undefined method ‘new’ for nil:NilClass”错误。

这是导致问题的代码:

def index
    @users = User.all
    render json: @users
end

我注意到当我尝试只将一个对象呈现给 JSON 时,一切正常:

def show
    @user = User.find(params[:id])
    render json: @user
end

或者当我在@users 对象上调用 to_json 时:

def index
    @users = User.all
    render json: @users.to_json
end

我的印象是调用 render json: 无论如何都会隐式调用 to_json,那么为什么调用两次可以解决我的问题?

最佳答案

我认为这是一个问题,因为 @users 是一个对象数组,需要先转换每个对象,然后再重新组装整个数组并输出为 JSON。

关于ruby-on-rails - 为多个 Rails 对象呈现 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30816201/

相关文章:

css - 尝试使用 Bootstrap 和 Rails 调整选择选项标签的宽度

Mysql2::Error sphinxql: 语法错误,意外 ',',期待 $end near ',@@SESSION.sql_auto_is_null = 0

ruby-on-rails - 测试 Rails 应用程序的 Braintree 透明重定向

ruby - 使用 Ruby 的 Imdb API

javascript - 为什么 JQuery 尝试在 Firefox 中将 ajax 响应解析为 xml?

java - 我们如何获得该谷歌地图 v2 中所有路线节点的音轨

ruby-on-rails - 在 Heroku 上降级到免费 dyno 后出现 SSL 错误

ruby-on-rails - 如何使用 Capistrano gem 为生产数据库播种?

css - 使用正则表达式将 CSS 分解成 block

iOS 5 Json 序列化