質問

Ruby on Rails 3.0.8を使用しています。ライアン・ベイツのチュートリアルをフォローしようとしています ここにあります。

これが私のコードのすべてです、それから私はそれが何をしているのかを説明します:

メッセージ/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 %>

メッセージ/_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はもうそこにいません。

*更新する前 *

enter image description here

これを見るだけで、HTMLは完全に間違っているように見えます。SPANのエンディングタグとLIは正しくありません。なぜこれが起こるのでしょうか?しかし、私がリフレッシュするとき、それはかなりうまく見えます。

*更新後 *

enter image description here

よろしくお願いします!

役に立ちましたか?

解決

escape_javascript Rails 3.0.8で壊れた - Rails 3.0.9(今日出てきた)にアップグレードして、問題を解決しました。

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

(リリースアナウンスの「変更」セクションに記載されているSafeBufferの問題は、 escape_javascript)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top