如何使数据库结构适应预期 API
How to adapt db structure to the expected API
假设我有一个客户端应用程序,它需要以下 JSON 结构,如图所示。
{'foo': {'bar': '1'}}
我想将相关的数据库结构保留为:
create_table :foos do |t|
t.string :baar
end
所以我想使用 baar
而不是 bar
作为数据库列的名称。您如何看待将这些东西别名为类似的东西:
alias_attribute :bar, :baar
呈现的 json 结构与您使用的数据库结构无关。 attribute_names可以在json渲染函数中设置(可以和底层数据库字段名相同也可以不同)
从 table 结构继续你有:
create_table :foos do |t|
t.string :baar
end
这将对应于 foo
模型:
class Foo < ActiveRecord::Base
..
end
foos_controller.rb
中的 json 呈现函数 - 对于显示操作(例如) - 如下所示:
class FoosController < < ApplicationController
def show
@foo = Foo.find(1)
respond_to do |format|
format.json { render json: { foo: { baar: @foo.bar } } }
end
end
end
在这里,json 属性 - baar
可以是任何东西,并且链接到 foos
table 中的 bar
字段。
假设我有一个客户端应用程序,它需要以下 JSON 结构,如图所示。
{'foo': {'bar': '1'}}
我想将相关的数据库结构保留为:
create_table :foos do |t|
t.string :baar
end
所以我想使用 baar
而不是 bar
作为数据库列的名称。您如何看待将这些东西别名为类似的东西:
alias_attribute :bar, :baar
呈现的 json 结构与您使用的数据库结构无关。 attribute_names可以在json渲染函数中设置(可以和底层数据库字段名相同也可以不同)
从 table 结构继续你有:
create_table :foos do |t|
t.string :baar
end
这将对应于 foo
模型:
class Foo < ActiveRecord::Base
..
end
foos_controller.rb
中的 json 呈现函数 - 对于显示操作(例如) - 如下所示:
class FoosController < < ApplicationController
def show
@foo = Foo.find(1)
respond_to do |format|
format.json { render json: { foo: { baar: @foo.bar } } }
end
end
end
在这里,json 属性 - baar
可以是任何东西,并且链接到 foos
table 中的 bar
字段。