2016-04-10 16 views
0

でパーシャルをレンダリング:誰かがページを入力するたびにレール、レールにこれを行う方法のいくつかの種類がある場合、私は疑問に思ってjqueryの

$('#fire').click(function(){ 
    <%= render 'userlist' %> 
}); 

私は私に更新を送信するためのWebSocketレール(宝石)を使用しています。入力すると、自動的にユーザーモデルが作成されます。誰かがページに入るたびに、すべての画面でユーザーリストを更新する必要があります。

答えて

0

私は、ユーザーが入るたびにページを再レンダリングするのではなく、既存のページにユーザーを追加したいと思っていますか?新しく入力されたユーザーをユーザーリストに追加または追加することで、これを行うことができます。たとえば、 'user-list'のクラスを持つulタグがあるとします。

$('#fire').click(function(){ 
    $(".user-list").append("<li>" + user-name + "</li>") 
}); 

これは、新しいユーザーの利用方法によって異なります。ページの更新を処理するjs関数を作成し、その関数に新しい用途を渡すことができます。私はビューと新しいユーザーを得る方法についてもっと知る必要があります。

+0

それは私が欲しいものですうん!しかし、ユーザーはデータベースで作成されるので、_users.htmlという名前の部分をレンダリングすると、自動的にすべてのユーザーが表示されます。問題は、既にページを読み込んだときに更新することです。今私はあなたが一時的な解決策として説明したことを既に行っていますが、実際のリストを取得する代わりにjqueryでリストを作成しているので、私が消したページを更新する瞬間です。 – Candielope

+0

私はAJAXを使って、以下の答えを示唆するつもりでした。ただし、新しいユーザーがページにどのように入っているかについては明確ではありません。ユーザーモデルがAJAXを使用して自動的に作成された場合は、そのユーザーをd/bに保存してリストに追加することができます。 – margo

+0

ありがとう!私は以前にユーザーAJAXを使用したことがないので、データベースから何かを追加する方法は不思議です。ユーザーはデータベースに保存されるため、必要はありません。 – Candielope

1
あなたはUserControllerでからアクションを呼び出すたぶん場合

$('#fire').click(function() { 
     $.ajax({ 
     type: "GET", 
     url: "/users", 
     success: function(data) { 
      $("#your-table").html(data); //use .html() if you fecth all list from controller 
      $("#your-table").append(data); //use .append() - that case you must pass, i.e., a param to specify the last page or 
     } 
     }); 
    }); 
+0

お時間をありがとう!あなたのコードについて少し説明できますか?私はかつてアヤックスを使ったことがない! – Candielope

+1

#fire要素をクリックすると、GET(UsersControllerのインデックスアクション)を使用して/ usersアクションが呼び出されます。この呼び出しが完了すると成功関数が実行されます(argはあなたの応答です) –

+0

ありがとう!私はそれを試してみましょう! :) – Candielope

関連する問題