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