Я хотел бы, чтобы мой рендеринг json был двумя разными способами. Я теперь мой метод as_json переопределен для отображения полного объекта в виде JSON как это:Два разных метода as_json
{
prop1: stuff,
prop2: stuff,
innerthings: {
{
prop1:stuff,
prop2:stuff
}
{
prop1:stuff,
prop2:stuff
}
}
}
И as_json выглядит следующим образом:
#Renders json
def as_json(options={})
super(
:except => [:created_at, :updated_at],
:include => [{:innerthings = > {
:except => [:created_at, :updated_at]
}}]
)
end
Я хотел бы также иметь второй вариант, чтобы оказать как это:
{
prop1:stuff,
prop2:stuff,
countinnerthings:10
}
тока, когда ниже код используется, я получаю первый визуализации:
respond_to do |format|
format.json { render json: @thing}
end
Я также хотел бы иметь возможность сделать что-то вроде as_list, которое я мог бы использовать в случае, подобном приведенному ниже, для отображения простого списка объектов.
respond_to do |format|
format.json { render json: @things.as_list }
end
Есть ли простой способ сделать это в рубине на рельсах?
Это работает, но мне пришлось изменить мой как json, чтобы сделать что-то вроде опции == nil || options.count == 0 basicjson else super (options) end – steventnorris