在我的Rails 4应用程序中没有调用以下Ruby模板处理程序的原因是什么?返回的json包含作业所具有的所有字段,而不仅仅包含id
和date
字段。
# 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。
答案 0 :(得分:0)
您实际上并未调用模板处理程序。相反,Rails在这里做的是调用@jobs.as_json
,它返回一个包含该模型属性的Hash。在此哈希上,它然后调用to_json
并将结果返回给客户端。
正常的操作方法是覆盖模型上的as_json
而不是使用模板。如上所述,as_json
应返回仅包含您要返回给用户的信息的哈希。然后Rails会将此哈希序列化为JSON。