0

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 の終了タグが正しくありません。なぜこれが起こるのでしょうか?しかし、リフレッシュすると、かなり問題ないように見えます。

*リフレッシュ後*

ここに画像の説明を入力

よろしくお願いします!

4

1 に答える 1

2

escape_javascriptRails 3.0.8 で問題が発生しました -- この問題を解決するには、Rails 3.0.9 (本日公開) にアップグレードしてください。

http://weblog.rubyonrails.org/2011/6/16/ann-rails-3-0-9-has-been-released

escape_javascript(リリース発表の「変更点」セクションで言及されているSafeBuffer の問題は、.

于 2011-06-16T20:55:47.503 に答える