我正在使用 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的结束标签也不对。为什么会发生这种情况?但是当我刷新时,它看起来非常好。
* 刷新后 *
提前谢谢大家!