将变量从application.html.erb传递到Rails中的控制器?

时间:2016-12-29 23:14:42

标签: ruby-on-rails variables

我在application.html.erb的{​​{1}}内有一个变量:

<script>

有没有办法将它传递给我的一个控制器(... <script> ... pos = { lat: position.coords.latitude, lng: position.coords.longitude }; ... </script> )的方法(posts_controller.rb)?

我需要将脚本内生成的纬度和经度都加到some_method中。我怎么能这样做?

编辑:(我没有提到它,但posts_controller不使用some_method,但是get 'some_method'

post

1 个答案:

答案 0 :(得分: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'])

对于vanilla javascript,请参阅此answer

some_method中,longitudelatitude将提供params[:longitude]params[:latitude]

您可以在@lat内设置实例变量(例如@lonsome_method),这些变量将在相应的视图中提供。