0

答えは AJAX 呼び出しであることはわかっていますが、特定の問題があります。ホームページですべてが 2 つのステップで行われます。

1-メインユーザーがルート「/」にアクセスします

2-私のインデックスページには、現在の場所(緯度と経度)を取得し、ユーザーの操作なしで手にある情報でページをリロードするJSがあります-その後、ページを正しく表示します。

問題: これを行う ajax 呼び出しを行う方法がわかりません (すべてのレイアウトをリロードしたくありませんwindow.location)。index.html.erb だけが必要です。わかりましたか? しかし、それは難しすぎます。私はこれを1か月ほど続けているので、できません:(誰か助けてください。本当に必要です。どうもありがとう。

4

2 に答える 2

0

そのためにコントローラーに触れる必要はありません。erbファイルでは、次のようなものが機能します。

<script>
  if (<%=params[:geo_location].blank? ? 'true' : 'false' %>) {
    locationData = DO_YOUR_THING_HERE;
    $.get('/', { geo_location: locationData});
  }
</script>

このようにして、ページが最初に読み込まれるときに、パラメータとともに ajax リクエストが送信されます。ページが 2 回目に読み込まれた後、オブジェクトerbからファイルから位置データにアクセスできるようになりparams[:geo_location]ます。


ページの一部だけを更新したい場合は、次のようにすることができます。

$('#container').load('/A_NEW_CONTROLLER_PATH', {geo_location: locationData});

A_NEW_CONTROLLER_PATH を設定して、関心のある部分的な HTML のみを返すようにします。これはrender 'index', layout: false、コントローラー アクションで使用して行うことができます。

于 2013-08-24T11:42:40.017 に答える