3

我正在使用Google Maps JavaScript API返回从A点到B点的距离,并且我能够成功获取该值。我也能够通过使用它写入日志(使用谷歌浏览器DevTools)以下JS看到它:Rails 4 - 发送Google Maps API JSON将val返回给控制器

console.log(totalDistance); 

什么我试过到目前为止还没有到目前为止这是有一个隐藏的工作标签,并使用设定的它的值JS:

$('#distance').text(totalDistance); 

在视图我有形式为:

<%= form_tag({ :action => 'fare', :controller=> 'page'}, {:class => 'form-horizontal center'}) do %> 
    <%= text_field_tag :origin, '', class: 'form-control', id: 'origin-input' %><br/> 
    <%= text_field_tag :destination, '', class: 'form-control', id: 'destination-input' %> 
    <%= hidden_field_tag :distance, '', id: 'distance' %> 
    <%= submit_tag "Submit" , id: 'get-route'%><!-- the id is needed for the JS --> 
<% end %> 

我的想法是如此I”来作为参数超过传递值到控制器检查参数p

<pre> 
<% params.each do |key, value| %> 
    <%= key + "==>" + value + "\n" %> 
<% end %> 
</pre> 

输出是这样的:

utf8==>✓ 

    authenticity_token==>**omitted** 

    origin==>LaGuardia Airport, NY, United States 

    destination==>JFK Airport, NY, United States 

    distance==> 

    commit==>Submit 

    controller==>page 

    action==>fare 

但你可以看到参数“距离”不具有越过该值通过我的看法是这样称职以上控制器。 但我确实看到我日志中的totalDistance的价值

所以我真的需要是搞清楚应该是在我的控制器的作用是什么,如果我的JavaScript需要更改到别的东西,并帮助我的观点是我应该改变什么。我觉得我没有正确地做到这一点。

有一件事我已经注意到的是,当我尝试不同的东西,我想设置与“距离”来totalDistance的id值一个div当我点击提交我的形式,在div将显示正确的距离,并且,因为我现在正在重新加载页面,所以一旦页面重新加载,值就不会停留。

我不知道如何从参数分配实例变量在我的控制器已经并访问他们在我的观点。这不是问题。

回答

0

如果您使用隐藏的输入字段。那么你可能想要使用

$('#distance').val(totalDistance) 

因为你试图分配文本;这可能无法正常工作。而且,您必须使用.val()来设置/获取输入字段的值。

参考:

  1. http://api.jquery.com/val/
  2. http://api.jquery.com/text/
+0

这是一个有价值的答案,这将有助于但恐怕在这种情况下,它并没有帮助我的问题。在我的操作中采取控制器端的步骤是什么? – ayounis90

+0

你可以检查传递给控制器​​的参数吗?通过这种方式,您可以检查在哪个字段中传递了什么值。然后在控制器中,获取相应的值。 'params ['something']' –

+0

我已更新我的问题以更好地显示我的内容。我能够访问参数并将它们分配给已有的两个输入字段的实例变量,然后在我的视图中查看这些参数,并且非常好。其他参数传递正常。 – ayounis90