Ruby on rails 使用Jquery在Rails 3中使用Ajax刷新分部文件

Ruby on rails 使用Jquery在Rails 3中使用Ajax刷新分部文件,ruby-on-rails,ruby,ajax,jquery,Ruby On Rails,Ruby,Ajax,Jquery,我有一个partial,它有一个容器,里面装着一堆东西。如果我通过ajax添加一个项目,我希望在这个容器中反映出来,而不刷新页面。我在寻找jquery/ajax方法来刷新页面上的那个部分时遇到了一个问题。我确信有一个简单的方法我只是错过了它。.js.erb $('#container_id').html('<%= escape_javascript(render(:partial => "partial", :formats => [:html])) %>'); $('

我有一个partial,它有一个容器,里面装着一堆东西。如果我通过ajax添加一个项目,我希望在这个容器中反映出来,而不刷新页面。我在寻找jquery/ajax方法来刷新页面上的那个部分时遇到了一个问题。我确信有一个简单的方法我只是错过了它。

.js.erb

$('#container_id').html('<%= escape_javascript(render(:partial => "partial", :formats => [:html])) %>');
$('#container_id').html(''partial',:formats=>[:html]))%>';

完整示例:

# CommentsController

def refresh_comments
  @comments = Comment.last_in(10.second) # fetch collection
  respond_to do |format|
    format.html { } # by default renders views/comments/refresh_comments.html.erb as template
    format.js { } # by default renders views/comments/refresh_comments.js.erb as template
  end
end

# views/comments/refresh_comments.js.erb

$('#post_comments').html('<%= escape_javascript(render(:partial => "comments_thread", :formats => [:html])) %>');

# * where: "post_comments" - is a DOM id of container.
#          "comments_thread" - name of partial. :formats => [:html] says that you render _comments.html.erb

# Look JQuery API for details.
#注释控制器
def refresh_注释
@comments=Comment.last_in(10.秒)#fetch collection
回应待办事项|格式|
format.html{}#默认情况下,将视图/comments/refresh_comments.html.erb作为模板呈现
format.js{}#默认情况下,将视图/注释/刷新_注释.js.erb作为模板呈现
结束
结束
#视图/注释/刷新_comments.js.erb
$('post_comments').html('comments_thread',:formats=>[:html]))%>';
#*其中:“post_comments”-是容器的DOM id。
#“注释线程”-部分线程的名称:formats=>[:html]表示您呈现了_comments.html.erb
#有关详细信息,请查看jQueryAPI。

这将调用服务器并刷新部分?不,当您通过ajax调用您的操作时,这将由控制器触发,然后将类似于
respond|u to do | format | format:js end的内容放入操作中
我遇到了一个问题。我得到了错误:javascript.js:1错误:NoMethodError:undefined方法'render'for#(in****)否,此代码仅用于js.erb模板(ajax请求)。您不能在Javascript运行时内访问服务器的功能。只有通过Ajax。