【问题标题】:Not appending the actual HTML in Rails不在 Rails 中附加实际的 HTML
【发布时间】:2011-06-16 20:51:38
【问题描述】:

我正在使用 Ruby on Rails 3.0.8。我正在尝试学习 Ryan Bates found here.

的教程

这是我所有的代码,然后我会解释它在做什么:

消息/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的结束标签不对。为什么会发生这种情况?但是当我刷新时,它看起来非常好。

* 刷新后 *

提前谢谢大家!

【问题讨论】:

    标签: javascript html ruby-on-rails faye content-tag


    【解决方案1】:

    escape_javascript 在 Rails 3.0.8 中出现故障 - 升级到 Rails 3.0.9(今天发布)以解决问题。

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

    (发布公告“变更”部分提到的SafeBuffer问题与escape_javascript有关)

    【讨论】:

    • 它会让我在 5 分钟内接受你的回答。感谢您的快速准确。
    猜你喜欢
    • 1970-01-01
    • 2016-07-08
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 2011-12-26
    相关资源
    最近更新 更多