Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将JavaScript变量传递给RubyonRails控制器_Javascript_Ruby On Rails_Ruby On Rails 3_Json - Fatal编程技术网

将JavaScript变量传递给RubyonRails控制器

将JavaScript变量传递给RubyonRails控制器,javascript,ruby-on-rails,ruby-on-rails-3,json,Javascript,Ruby On Rails,Ruby On Rails 3,Json,如何从JavaScript侦听器传递变量(id): Gmaps.map.callback = function() { ... ... google.maps.event.addListener(marker, 'click', function() { var id = this.currentMarker; alert(id); }); } } 到RubyonRails控制器中的实例变量(@foo) def create

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

Gmaps.map.callback = function() { 
    ...
    ...
    google.maps.event.addListener(marker, 'click', function() {
      var id = this.currentMarker;
      alert(id); 
    });
   }
  }
到RubyonRails控制器中的实例变量(@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| %>


您必须在此处填写详细信息,但这会让您非常接近。

您只需执行ajax调用get或POST,而不是
警报
谢谢,它似乎解决了我的问题!
<%= form_for @user do |f| %>