如何使db结构适应预期的API

时间:2015-01-07 17:05:27

标签: ruby-on-rails ruby json api

假设我有一个客户端应用程序,它希望显示以下JSON结构。

{'foo': {'bar': '1'}}

我希望将相关的数据库结构保持为:

 create_table :foos do |t|
   t.string :baar
 end

所以我想使用baar代替bar作为db列的名称。您如何看待将这些东西混淆为:

alias_attribute :bar, :baar

1 个答案:

答案 0 :(得分:0)

渲染的json结构与您使用的数据库结构无关。 attribute_names可以在json render函数中设置(并且可以与底层数据库字段名相同或不同)

从表结构继续:

create_table :foos do |t|
  t.string :baar
end

这与foo模型相对应:

class Foo < ActiveRecord::Base
  ..
end

foos_controller.rb内的json渲染函数 - 例如show动作 - 将如下所示:

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可以是任何内容,并且链接到bar表中的foos字段。