如何使用RJS在Rails中重新加载部分页面?

时间:2009-09-03 07:37:16

标签: ruby-on-rails ruby rjs

您好我正在开发一个rails项目。我必须重新加载部分页面。

例如创建动作

 def create
    # Some transaction to the database 
   respond_to do |format|
     format.html {render :text => 'Add post' }
     format.js
   end
  end

在我的观点posts / create.js.rjs我想重新加载users / _login.html.erb文件    这包含帖子总数或帖子的大小,当它创建新帖子时应该重新加载部分页面_login.html.erb并显示帖子递增大小

如果我使用page.reload,则在create.js.rjs中重新加载整个页面,如何仅重新加载create.js.rjs中的部分文件_login.html.erb。

2 个答案:

答案 0 :(得分:5)

代码如下:

  page.replace_html "login-block-id", :partial => "users/login"

其中login-block-id是包装登录模板的元素的id

请注意,replace_html可以接受与render do相同的参数。

答案 1 :(得分:2)

哟也可以尝试

page[:my_div].replace :partial => "/users/login"  

其中my_div是包装登录模板的元素的ID