1

我正在构建一个类似 twitter 的小提要。用户有输入,而您有输入源。

提要实际上是一个帖子列表。每个帖子的视图由_post.html.haml部分视图定义。

我有一个 AJAX 发布方法,可以在后端创建一个新帖子。问题是您必须刷新页面才能真正查看出现在提要上的帖子。

我想将 html 附加到提要列。但是,我使用一个局部视图在提要列上创建一个帖子,该视图接受帖子详细信息的局部变量。

部分视图位于服务器端。我怎样才能仍然使用相同的局部视图来获取我创建的新帖子的 html 代码,以便我可以将其附加到提要列而无需刷新页面。

谢谢!

4

2 回答 2

1

在您发布到的操作中尝试render(:update) :

render(:update) do |page|
  page.replace_html 'divID', :partial => 'your-partial'
end
于 2013-01-27T04:43:43.117 回答
1

发布代码片段,以便轻松回答。无论如何,你可以这样做。当您使用 get ajax 请求创建新帖子时,它将进入您的控制器操作。在控制器操作中,您可以执行以下操作:

   def get_new_post   #This is the controller action called by your ajax
     post = Post.create!(ajax_params)
     render :partial => "post", :locals => {:post => post}
   end

鉴于您将新帖子附加到帖子列表,如下所示:

$.get("ajax_request", function(data, status){
 if(status=="success"){  //if your ajax is success
   $("#post-list").append(data)  //Assuming post-list is the div id of list of posts
 }
});
于 2013-01-27T04:51:20.197 回答