2014-10-11 44 views
0

我已经建立了这样的(artists_controller)控制器:.erb视图不包含变量ajax请求后ONLY - Ruby on Rails的 - AJAX

respond_to :html, :js, :json 

def entry 
     #if AJAX 
     if request.xhr? 
      render layout: "ajax" 
     end 
     id = params[:id] 
     @id = id 
end 

而这只是有一个观点(观点/艺术家/项):

ID <%= @id %> 

路线设置这样的:

get '/artist/(:id)', to: 'artists#entry' 

的Javascript AJAX代码如下所示:

jQuery.ajax({ 
    type: 'GET', 
    url: '/artist/137880', 
    success: function(data){ 
     jQuery('#main-container').html(data); 
    } 
}); 

当我通过常规页面请求访问页面“/ artist/137880”时,它加载正常(ID 137880)。但是,当我通过Ajax请求访问页面时,它会加载布局(也称为无页眉和页脚),但该模板仅显示“ID”,实际上没有变量从控制器传入。

这是怎么回事?

回答

0

尝试在致电render之前初始化变量@id

+0

哇,谢谢。这太明显了,这很痛苦。只要SO会让我接受,我会将其标记为已接受的答案。 – BigBrother6 2014-10-11 16:59:36