2016-05-03 9 views
0

私は自分のビューを私のレールアプリでレンダリングするのに問題があります。 私は自分のアプリの各ツールをロードするホームページを作成しようとしていますが(5 - 6種類)、ユーザーは1つずつ電話をかけて、ページをリロードすることはできません。私は、ユーザーボタン1をクリックし、はtools1を隠す場合は1をツールのみを表示するように行うことができますどのようにレールで再ロードせずに各ビューをレンダリングする方法は?

<button class="button1"></button> 
<button class="button2"></button> 
<button class="button3"></button> 
<%= render "tools1/index %> 
<%= render "tools2/index %> 
<%= render "tools3/index %> 
... 

私は、各Ajaxでビューをレンダリング歓迎/ index.html.erbページで試してみましたユーザーがbutton2などをクリックしたときにtools2を表示しますか? もう1つの質問ですが、効率的な方法ですか?

編集:

私の誤りは明らかではありませんでした。ポイントは、私が最初に各ページをレンダリングしたくないということです、完璧なものは(だけでなく、ショー)をロードするページによって、彼らはページ、ちょうどユーザーがそれらを呼び出す

おかげだろう

+0

これらを選択的に非表示にしてから、ボタンをクリックすると表示する必要があります。 [jQuery](https://jquery.com)の仕事のように聞こえる。 – tadman

答えて

2

迅速なAJAXローダー例

は、いくつかのリンクを追加/あなたのHTMLにボタン:

<a class="ajax-load" href="/url1">Page 1</a> 
<a class="ajax-load" href="/url2">Page 2</a> 
<a class="ajax-load" href="/url3">Page 3</a> 

<div class="ajax-content"></div> 

このjQueryのコードを追加します。

ユーザーがリンクをクリックすると、コンテンツがAJAXに読み込まれます。


前答え

あなたのビューでページをレンダリングしているので、あなたがそれらを再度読み込むAJAXする必要はありません。私はあなたのためにこれを行うためにいくつかのjQueryプラグインを使用することをお勧めします。

たとえば、tabsまたはaccordionです。

+0

あなたの答えをお寄せいただきありがとうございます。実際には単なるページではなく、他の多くのページを呼び出すコントローラのページです...これがAjaxを使用する理由です。これらのページをすべて同時にレンダリングするとページの読み込み時間が非常に長くなります –

+0

実例が追加されました。 – Uzbekjon

+0

ちょうど完璧、ありがとう! –

関連する問題