我正在尝试Rabl,但是,我似乎收到了一个几乎空的json块。
require_dependency "api/application_controller"
module Api
class RentablePropertiesController < ApplicationController
respond_to :json
def index
@r = Core::RentableProperty.all
# render :text => @r.to_json --> note: this renders the json correctly
render "api/rentable_properties/index" #note: rabl here does not
end
end
end
index.json.rabl
collection @r
输出
[{"rentable_property":{}}]
注意:使用简单的@ r.to_json,它可以正确呈现:
[{"id":1,"description":"description","property_type_id":1,"created_at":"2013-08-22T19:04:35.000Z","updated_at":"2013-08-22T19:04:35.000Z","title":"Some Title","rooms":null,"amount":2000.0,"tenure":null}]
任何想法为什么rabl不起作用?
答案 0 :(得分:2)
RABL(https://github.com/nesquena/rabl#overview)的文档说明您需要确定要在JSON中显示的属性。
他们的例子:
# app/views/posts/index.rabl
collection @posts
attributes :id, :title, :subject
child(:user) { attributes :full_name }
node(:read) { |post| post.read_by?(@user) }
访问/posts.json
时会输出以下JSON或XML:
[{ "post" :
{
"id" : 5, title: "...", subject: "...",
"user" : { full_name : "..." },
"read" : true
}
}]