0

在我的 Rails 4 应用程序中未调用以下 Ruby 模板处理程序的原因可能是什么?返回的 json 包含 Job 拥有的所有字段,而不仅仅是iddate字段。

# app/controllers/jobs_controller.rb
...
def index
  @jobs = Job.all
  render json: @jobs
end
...


# app/views/jobs/index.json.ruby
jobs = @jobs.map |job| do
  {
    id: job.id,
    date: job.created_at
  }
end

jobs.to_json

我使用 Rails 4.0.0.rc1 和 ruby​​ 1.9.3p0。

4

1 回答 1

0

您实际上并没有调用模板处理程序。相反,Rails 在这里所做的是调用@jobs.as_json它返回一个包含该模型属性的 Hash。然后在此哈希上调用to_json并将结果返回给客户端。

正常的做法是覆盖as_json您的模型而不是使用模板。如上所述,as_json应该返回一个仅包含您希望返回给用户的信息的哈希值。然后,Rails 会将这个哈希序列化为 JSON。

于 2013-05-24T09:58:05.660 回答