如何获取id字段并发送到视图

我想知道如何从我的模型中获取ID字段以传递我在单击标记时调用的JavaScript。

我的模特:

acts_as_gmappable :process_geocoding => false, :lat => "lat", :lng => "lon" 

我的控制器

 def index @locales_markers = Locale.all.to_gmaps4rails respond_to do |format| format.html { render :layout => false } end end 

我的看法

  { "data" => @locales_markers } %>   Gmaps4Rails.callback = function() { for (var i = 0; i < this.markers.length; ++i) { google.maps.event.addListener(Gmaps4Rails.markers[i].serviceObject, 'click', function(){ $('#info').load('/messages/' ****); $('#info').dialog("open"); }); } };   

谢谢Luciano

每个标记属性都存储并可以检索。

在您的示例中,只需执行:

 $('#info').load('/messages/' + Gmaps4Rails.markers[i].id ); 

编辑:

你应该创建另一个js函数:

 custom_listener = function(the_id) { return function(){ $('#info').load('/messages/' + the_id ); $('#info').dialog("open"); }; }; 

并这样称呼它:

 Gmaps4Rails.callback = function() { for (var i = 0; i < this.markers.length; ++i) { google.maps.event.addListener(Gmaps4Rails.markers[i].serviceObject, 'click', custom_listener(Gmaps4Rails.markers[i].id)); } }; 

我将控制器更改为:

  def index @locales_markers = Locale.all.to_gmaps4rails do |locale| "\"id\": \"#{locale.id}\"" end respond_to do |format| format.html { render :layout => false } end end 

并且工作正常,但是,我无法在视图中获取id值。

怎么解决?

谢谢Luciano