在rails项目中,我有1个控制器和2个模型。我希望从angularjs
向rails服务器发送1请求,并为响应,获取2个json数组,1。第一个模型。 2.秒模型。
现在我使用下面的代码,只得到2个数组中的一个:
Rails Contorller:tables_controller.rb
:
class Api::V1::TablesController < Api::V1::BaseController
def index
@table = Table.all
@mostagheltype = Mostagheltype.all
//I can just send 1 of model.
respond_with(Table.all)
end
end
Angularjs控制器:table.js
:
$scope.tables = Tables.index();
tableService.js
:
'use strict';
var app = angular.module('tableService', ['ngResource']);
app.factory('Tables', function($resource) {
return $resource('/api/tables.json', {}, {
index: { method: 'GET', isArray: true}
});
});
我可以在轨道控制器中将1个数组中的2个表推入,然后从角度控制器接收,如下所示:
array = []
Table.all.each do |table|
array << { name: table.name, check: 1 }
end
Mostagheltype.all.each do |m|
array << { name: mostagheltype.name, check: 2}
end
//I can seprate 2 array by `check` value in angularjs part.
但我想要一个解决方案,我将每个阵列分开发送。我怎样才能做到这一点?有什么想法吗?
答案 0 :(得分:0)
简短的回答没有。您不能对一个请求有两个回复。您可以使用包含两个数组的对象进行响应。
我有点生疏了。所以这可能比ruby更多伪代码;
obj = {}
obj.array1 =[]
obj.array2 =[]
然后填充每个数组并返回该对象。