表达式关联数据存在问题。我有订单和父母模型用餐。用餐有一个订单。订单包括:用餐和状态的ID。 order.status
显示正确,但order.meal.name
没有。这是我的rails控制器:
def index
respond_with current_user.orders
end
通过这种方式,我尝试在Angular中显示数据:
<tbody ng-repeat="order in orders | orderBy: '-cost' | filter:activeOrder">
<tr>
<td>{{order.id}}</td>
<td>{{order.meal.name}}</td>
<td>{{order.meal.cost}}</td>
<td>{{order.status}}</td>
</tr>
</tbody>
</table>
在Angular中创建订单:
orders.create({
meal_id: $scope.meal.id,
status: "ordered",
});
在Rails中创建:
def create
order = meal.create_order(order_params.merge(user_id: current_user.id))
respond_with order
end
这段代码有什么问题?
答案 0 :(得分:0)
def index
temp_array = Array.new
current_user.orders.each do |order|
temp_hash = Hash.new
temp_hash[:order] = order
temp_hash[:meal] = order.meal
temp_array << temp_hash
end
respond_with temp_array.to_json
end
<tbody ng-repeat="order in orders | orderBy: '-cost' | filter:activeOrder">
<tr>
<td>{{order.order.id}}</td>
<td>{{order.meal.name}}</td>
<td>{{order.meal.cost}}</td>
<td>{{order.status}}</td>
</tr>
Angular无法访问模型关联,因此您手动将值传递给show
答案 1 :(得分:0)
在订单模型中,我写了这段代码:
def as_json(options = {})
super(options.merge(include: :meal))
end
现在它正在运作!