0

Rails 3.2のショーページにインタラクティブなJavaScriptダイアグラムがあります。ページには、グラフ内のアイテムにリンクされた見出しも含まれています。ユーザーがダイアグラム内のアイテムをクリックしたときに ajax リクエストを介してページを更新したいのですが、ダイアグラムをリロードしたくありません。私は以前に ajax リクエストを実装したことがなく、Web 開発の新しい概念を完全に理解しているとは言えません。ただし、ターボリンクと pjax について少し読んだことがあり、私の問題はこれらに関連しているようですが、そのようなアプローチを実装する方法がわかりません。

show.html.erb

<% provide(:title, @item.name) %>

<h2>
   <%= @item.name %> 
</h2>
…

表示ページへの URL パスは次のとおりです (項目 1 の場合):

localhost:3000/items/1

JavaScript コードからの ajax リクエストを介して、インスタンス変数 @item を変更する必要があると思います。ただし、単に変数を変更するのではなく、URL をリダイレクトするように、URL も更新したいと思います。これを行う方法について何か提案はありますか?

4

1 に答える 1

1

これはコードで答えることができる質問ではありません。必要なものを実装する方法が多すぎて、意味のあるものを提供するのに十分な情報がないからです。

行う必要のある主な違いは、サーバー側とクライアント側のコードです。Rubyはサーバー上で実行され、javascriptはクライアントのブラウザーで実行されます。@itemしたがって、 AJAXクエリを使用して変数を変更することはできません。あなたができることは、AJAXでレンダリングされたHTMLを編集することですが、それ自体が数冊の本に値する主題です。

ターボリンクとPJAXは、<body>通常のページの再読み込みではなく、リンクをクリックしたときにタグのコンテンツ全体(または定義できるセクション)を再読み込みするAJAXの実装です。これにより、アセット(javascript、スタイルシートなど)が再ロードされないため、時間を大幅に節約できます。これは必要な場合とそうでない場合があるため、PJAXのサンプルページをご覧ください

これをさらに進める前に、AJAXを読む価値があります。私がお勧めできるリソースの1つは、 Railsを使用したアジャイル開発という本です。これは、Railsアプリを構築するプロセス全体を経て、AJAXの甘さを上に追加します。

ただし、オンラインにはたくさんのリソースがあります。まず、Railsの外部でAjaxがどのように機能するかを把握してから、「RailsandAJAX」のグーグルを開始します。

于 2012-11-22T11:16:47.003 に答える