我有gmaps4rails工作来显示所有位置。但是,我想使用他们的位置显示工作人员的地图。 Workorder belongs_to location。
在工作服务器控制器中,这将显示所有位置:
@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 :(得分: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
时和返回时的内容。