Javascript jqueryajax在rubyonrails中呈现一篇新文章

Javascript jqueryajax在rubyonrails中呈现一篇新文章,javascript,ruby,jquery,ruby-on-rails,ajax,Javascript,Ruby,Jquery,Ruby On Rails,Ajax,我试图用jQueryAjax呈现帖子的创建过程,但似乎无法使其正常工作。它似乎以非常奇怪(我认为不存在)的样式呈现帖子,并且只有在页面刷新后才会显示flash消息。页面刷新后,文章的格式也会正确 下面是javascript: $("#micropost_form").before('<div id="flash_notice"><%= escape_javascript(flash.delete(:notice))%></div>'); $("#user_in

我试图用jQueryAjax呈现帖子的创建过程,但似乎无法使其正常工作。它似乎以非常奇怪(我认为不存在)的样式呈现帖子,并且只有在页面刷新后才会显示flash消息。页面刷新后,文章的格式也会正确

下面是javascript:

$("#micropost_form").before('<div id="flash_notice"><%= escape_javascript(flash.delete(:notice))%></div>');
$("#user_info").html("<%= pluralize(current_user.microposts.count, "micropost") %>");
$("#feed_items").prepend(" <%= escape_javascript(render(:partial => @micropost)) %>")
$("#micropost_form")[0].reset();
这是我的部分订阅源:

<% unless @feed_items.empty? %>
 <table id="feed_items" class="microposts" summary="User microposts">
  <%= render :partial => 'shared/feed_item', :collection => @feed_items %>
 </table>
 <%= will_paginate @feed_items %>
<% end %>

“共享/feed\u items',:collection=>@feed\u items%>
我的flash消息部分:

<% flash.each do |key, value| %>
  <div class="<%= key %>"><%= value %></div>
<% end %>

如果还有其他代码需要发布,请告诉我


那么我做错了什么?如果您想查看所有代码并在本地运行,以便更好地了解正在发生的事情,可以在此处找到:

当您使用ajax时,需要使用
flash。现在
查看flash消息。见文件。Rails正在寻找一个页面刷新/重定向以从flash哈希堆栈中推送和弹出,使用now将立即设置它,然后您可以如上所述访问它。您可以使用flash.now来代替控制器中的常规闪存使用。类似这样的情况非常典型:

  if @object.save
    flash.now[:notice] = "Object successfully created"
  else
   ...
  end
这样可以解决您的闪存问题

至于奇怪的内容/样式,在没有看到标记的情况下进行评论有点困难。唯一让我觉得奇怪的是
render:partial=>@microspost

我不确定@micropost是否只是一个字符串,但通常您会执行类似于
render:partial=>'path/to/partial',:object=>@micropost


同样,如果没有看到所有其他标记,几乎不可能不说。我已经将这个问题迁移到Stack Overflow,因为这个站点是关于检查工作代码,而不是修复损坏的代码。我不确定如何实现
flash。现在
代码。您如何提供一个示例?另外,您可以从我提供给git hub的链接中查看标记。所有的代码都在那里。在flash上添加了说明。现在,我没有时间仔细阅读您的源代码并解决所有其他问题。不管怎么说,这并不是问题的关键。试着将代码分解成更小的动作,并专门测试每一个动作,看看它在哪里被破坏
<% flash.each do |key, value| %>
  <div class="<%= key %>"><%= value %></div>
<% end %>
  if @object.save
    flash.now[:notice] = "Object successfully created"
  else
   ...
  end