2016-12-29 196 views
1

我有application.html.erb裏面的變量:■方法(some_method)的<script>將變量從application.html.erb傳遞給控制器​​在Rails中?

... 
<script> 
    ... 
    pos = { 
    lat: position.coords.latitude, 
    lng: position.coords.longitude 
    }; 
    ... 
</script> 

有沒有辦法將它傳遞到我的控制器之一(posts_controller.rb)「?

我需要得到經度和緯度是在腳本內部生成到posts_controller。我怎樣才能做到這一點?

編輯:(我沒有提到它,但some_method不使用get 'some_method',但post

#routes 
post 'some_method' => 'posts#scrape', as: :some_method 

回答

1

GET請求

你可以使用

window.open("/posts/some_method?longitude="+pos['lng']+"&latitude="+pos['lat'],"_self") 

內你的<script>

POST請求

隨着jquery,你可以使用:

$.post("/posts/some_method?longitude="+pos['lng']+"&latitude="+pos['lat']) 

對於香草的javascript,請參閱本answer

some_methodlongitudelatitude將在params[:longitude]params[:latitude]可用。

您可以在some_method中設置實例變量(例如@lat@lon),這些變量將在相應的視圖中可用。

+0

Eric,你好!感謝您的迴應。我沒有詳細說明(這完全是我的錯),但some_method不是一個GET請求,但POST請求。你能否提出另一種方法將變量傳遞給非GET方法?我編輯我的帖子以添加方法。 – Iggy

+0

謝謝!遺憾的是,我一直在問,但現在,我用jQuery來發布'longitude'和''爲POST' latitude'屬性,我怎麼能抓住它'some_method'(和視圖上顯示呢?)非常讚賞的幫助! – Iggy

+0

不客氣。查看更新。 –

相關問題