2012-04-10 59 views
0

在我的项目中,点击复选框,我使用ajax调用getProducts方法。它获取所有产品的详细信息,但会出现错误。问题,同时呈现视图使用轨道上的红宝石的HTML 3

在我的application.js现在做的是这样的:

function getProducts(siteid) 
{ 
    if(document.getElementById("cb_site"+siteid).checked==true) 
    { 
     var theURL = '/index_s/' + siteid; 
      $.ajax({ 
       url: theURL 
      }); 
    } 
} 

如果我尝试像

@products=ProductDetail.where("site_id=?",params[:siteid]) 
respond_to do |format| 
    format.html redirect_to @products.home 
    format.js 
end 

上午,以获取产品详细信息(控制器)收到错误

NoMethodError(未定义方法`家'为#)

,如果我试图像这样的(产品细节控制器)

@products=ProductDetail.find_by_site_id(params[:siteid]) 
respond_to do |format| 
    format.html redirect_to @products.home 
    format.js 
end 

我得到的错误是这样的:

NoMethodError(用于#未定义的方法'家”)

,如果我试图像这样( product_details控制器)

@products=ProductDetail.all 
respond_to do |format| 
    format.html redirect_to @products.home 
    format.js 
end 

时收到错误

未定义的方法'家”为#<阵列:0xb075138 >

和我有一样的看法home.html.erb

<div id="product_details"> 
    <%= render 'index' %> 
</div> 

在_index.html.erb 正在显示产品

在index.js.erb的

$('#product_details').html('<%= escape_javascript render ('index') %>'); 

在router.rb

match "index_s/:siteid" => 'product_details#index' 

请帮我从这个问题来。

回答

0

控制器在做错误。我改变了我的控制器代码,如下所示,我的问题就解决了

在应用程序/控制器/ product_details

def index 
    @products=ProductDetail.where("site_id=?",params[:siteid]) 
end 

应用程序/视图/ product_details/home.html.erb

<div id="product_details"> 
    <%= render 'index' %> 
</div> 

在应用/views/product_details/_index.html.erb

显示产品细节

In index.js.erb

$('#product_details').html('<%= escape_javascript render ('index') %>');