将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| %>
你必须在那里填写详细信息,但这应该会让你非常接近。