Ruby on Rails 3.0.8 を使用しています。ここにあるRyan Bates のチュートリアルに従おうとしています。
これが私のコードのすべてです。次に、それが何をしているのかを説明します。
メッセージ/index.html.erb
<ul id="chat">
<%= render @messages %>
</ul>
<br/>
<%= form_for Message.new, :remote => true do |f| %>
<%= f.text_field :content %>
<%= f.submit "Send" %>
<% end %>
messages/_message.html.erb (コンテンツ タグと純粋な html を使用しています)
<%= content_tag :li do %>
<%= content_tag :span, :class => "created_at" do %>
<%= message.created_at.strftime("%H:%M") %>
<% end %>
<%= message.content %>
<% end %>
* メッセージ/create.js.erb *
<% broadcast "/messages/new" do %>
$("#chat").append("<%= escape_javascript render(@message) %>");
<% end %>
$("#new_message")[0].reset();
関連するコードはこれですべてだと思います。私の問題は、[送信] をクリックすると、純粋な html が [チャット] に追加されることです。しかし、ページを更新すると、新しいメッセージを送信するまでその html は表示されなくなります。
*リフレッシュ前*
これを見る限り、html が完全に間違っているように見えます。span と li の終了タグが正しくありません。なぜこれが起こるのでしょうか?しかし、リフレッシュすると、かなり問題ないように見えます。
*リフレッシュ後*
よろしくお願いします!