我正在使用 ActionController::live
进行聊天.
stream
在我的 ChatsController 中推送帖子。
def stream
response.headers['Content-Type'] = 'text/event-stream'
start = Time.zone.now
loop do
Post.where('created_at > ?', start).each do |post|
response.stream.write("event:push\n")
response.stream.write("data:#{post.to_json}\n\n")
start = post.created_at
end
sleep 2
end
rescue IOError
ensure
response.stream.close
end
使用 javascript,我用 <li>
包装了 gravatar 和这个 json并将其附加到 <ul>
.然后,我想使用 gravatar_for
我为 post
定义和呈现部分的方法模型。
你能教我如何将 ruby 代码 (<%...%>) 附加到 html 元素 (
.append('<%...%>')
有一次,没用。
最佳答案
如果您的 Controller 正在响应 javascript,您可以使用相应的 js.erb 文件渲染部分内容,如下所示:
$('element').append('<%= escape_javascript(render partial: "post") %>');
关于javascript - 如何将 ruby 代码附加到 html 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28432589/