将JavaScript变量传递给ruby-on-rails控制器

如何从JavaScript侦听器传递变量(id):

Gmaps.map.callback = function() { ... ... google.maps.event.addListener(marker, 'click', function() { var id = this.currentMarker; alert(id); }); } } 

到ruby-on-rails控制器中的实例变量(@foo)

 def create @foo = ??? ... end 

在视图(表单)中正确创建关系:

  @foo.id) do |f| %> 

谢谢!

如果我理解正确,那么执行此操作的好方法是使用AJAX将id提交到您的操作并使用操作来呈现您的表单。

在你的javascript中看起来像这样:

 jQuery.ajax({ data: 'id=' + id, dataType: 'script', type: 'post', url: "/controller/action" }); 

你需要一条路线:

 post 'controller/action/:id' => 'controller#action' 

然后在您的操作中,您可以获取该ID并将表单呈现如下:

 def action @user = User.relationships.build(:followed_id => params[:id]) render :viewname, :layout => false end 

然后你可以在局部或其他任何地方为@user构建一个表单

 <%= form_for @user do |f| %> 

你必须在那里填写详细信息,但这应该会让你非常接近。