为什么在Rails 4中没有调用Ruby模板处理程序?

时间:2013-05-24 09:52:42

标签: ruby-on-rails-4

在我的Rails 4应用程序中没有调用以下Ruby模板处理程序的原因是什么?返回的json包含作业所具有的所有字段,而不仅仅包含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。

1 个答案:

答案 0 :(得分:0)

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

正常的操作方法是覆盖模型上的as_json而不是使用模板。如上所述,as_json应返回仅包含您要返回给用户的信息的哈希。然后Rails会将此哈希序列化为JSON。