2013-02-20 180 views
0

我有gmaps4rails可以顯示所有位置。但是,我想用工作地點顯示地圖。工作單位belongs_to位置。gmaps4rails選擇範圍

在工作訂單控制器,這將顯示所有的位置:

@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> 
+0

工作單位和地點之間的關係是什麼? – apneadiving 2013-02-25 22:14:22

+0

工作單位belongs_to位置 – Reddirt 2013-02-25 22:24:55

+0

好的,「Workorder.location」的含義是什麼?看起來像一個範圍,但它是一個關係。我好幾年沒有使用ActiveRecord,但仍然看起來很奇怪 – apneadiving 2013-02-25 22:32:49

回答

0

belongs_to指定與另一個類的一對一關聯(它返回只有一個入口)。

to_gmaps4rails是Enumerable中的方法(它期望在數組上調用)。

而且,你不能直接從類調用的關係(這不是一個類的方法,它是一個實例方法): Workorder.location.all.to_gmaps4rails

應該是: a_work_order =工作單。第一 a_work_order.location

,並與to_gmaps4rails

[a_work_order.location].to_a.compact.to_gmaps4rails 

它不好看使用它,但它涵蓋了當locationnil,當它返回什麼。