2011-05-22 80 views
1

所以我明白如何获得partials渲染时说一个链接被点击,但说我想开始加载页面呈现后的部分?Rails,在页面加载时通过JS渲染部分?

show.html.erb

<div id="weather"></div> 

weather.js.erb

$("#weather").html("<%= escape_javascript(render(:partial => 'weather')) %>"); 

weather.html.erb

<%= Time.now %> # For brevity. This actually does more. 

控制器

def weather 

    slow_api_request 

    respond_to do |format| 
    format.js {render :layout => false} 
    end 
end 

但是这样的话我怎么能开始为页面加载后的部分请求(因为动作是检索来自API的数据很慢),我使用的轨道UJS,我只是有点困惑。

回答

3

您应该简单地添加一个ajax调用。假设你使用jQuery,只需在你的视图中添加这种脚本:

$.ajax({ 
    type: "GET", 
    url: "<%= url_for your_path %>" , 
    success: function(data){ 
    //if ever there is something more to do (there is also an error handler) 
    } 
});