アプリに Ajax を実装しようとしています。奇妙な行動が発生!デイケアアプリです。特定の日付の特定の保育園を表示すると、子供を追加できます。最初に、データベースの子供のリストが生成され、そのうちの 1 つをクリックすると、ページがリロードされ、新しい子供がデイケアの出席リストに表示されます。それは正常に動作しています。よりユーザーフレンドリーにするために ajax を追加したいだけです。
子供をクリックしてデイケアに追加すると、daycare_item が作成されます (テーブル、子供の ID とデイケアの ID を結合)。
ajax 対応にするための変更を行います。
- リストの一部
- daycare_item コントローラの format.js
- リンク上でリモート真。
それは機能します。もうリロードする必要はありません。ただし、リストは子リストを 2 回クリックしたときにのみ更新されます (最後に追加された子はまだ表示されません)。js トランザクションが機能し、ページを手動で更新すると、欠落している子が表示されます。
私はいくつかのことを試しましたが、ここに私の結果があります:
私のパーシャルには
<% @daycare.daycare_items.each do |c| %>
<li><%= c.child.firstname ></li>
<% end %>
これにより、1 つの子が表示されないという「ラグ」効果が生じます (完全に更新されるまで)。
しかし、私が置くと
<%= @daycare.daycare_items.count %>
コードは時間内に更新されます! ログに奇妙なことは何もありません。なぜ .each メソッドが違いを生むのですか?