0

我有 gmaps4rails 工作以显示所有位置。但是,我想使用他们的位置显示带有工作订单的地图。工单belongs_to 位置。

在工作订单控制器中,这将显示所有位置:

   @json = Location.all.to_gmaps4rails

但是,这不会显示工单位置:

   @json = Workorder.location.all.to_gmaps4rails

这是视图代码:

   <%= gmaps("markers" => {"data" => @json, "options" => {"list_container" => "markers_list"} }) %>
   <strong><ul id="markers_list">  </ul></strong>
4

1 回答 1

0

belongs_to指定与另一个类的一对一关联(它只返回一个条目)。

to_gmaps4rails是一个来自 Enumerable 的方法(它期望在一个数组上被调用)。

此外,您不能直接从类调用关系(它不是类方法,它是实例方法):Workorder.location.all.to_gmaps4rails

应该是:a_work_order = WOrkorder.first a_work_order.location

并与它一起使用to_gmaps4rails

[a_work_order.location].to_a.compact.to_gmaps4rails

它并不漂亮,但它涵盖了何时location返回nil以及何时返回。

于 2013-03-13T06:25:55.310 回答