Ruby on rails Rails 4呈现json布局
是否有一种方法可以为所有json响应追加数据(例如,Ruby on rails Rails 4呈现json布局,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,是否有一种方法可以为所有json响应追加数据(例如,{:foo=>6}),使诸如render:json=>{..}之类的代码变成{“foo”:6,…} 我试图在app/views/application.json.erb中创建一个json布局,但似乎没有什么不同 我使用的代码通常类似于: respond_to do |format| format.html format.json { render json: {..} } end 在使用json视图时,我可以使用它,但是为每个响应创建
{:foo=>6}
),使诸如render:json=>{..}
之类的代码变成{“foo”:6,…}
我试图在app/views/application.json.erb中创建一个json布局,但似乎没有什么不同
我使用的代码通常类似于:
respond_to do |format|
format.html
format.json { render json: {..} }
end
在使用json视图时,我可以使用它,但是为每个响应创建一个视图有点麻烦。使用、定义一个自定义序列化程序并为每个模型的序列化程序继承它
假设我们有一个Bar
和一个Baz
模型。然后,我们将每个序列化器定义为:
class FooSerializer < ActiveModel::Serializer
attributes :foo
def foo
6
end
end
class BarSerializer < FooSerializer
attributes :id, :attr_one, :attr_two
# ...
end
class BazSerializer < FooSerializer
attributes :id, :attr_1, :attr_2
# ...
end
您可以拥有布局并设置公共属性。您可以通过解析yield来获得休息
{ bar: { foo: 6, id: 1, attr_one: "something", attr_two: "something" } }
{ baz: { foo: 6, id: 1, attr_1: "something", attr_2: "something" } }