2009-06-16 21 views
0

有人請向我解釋爲什麼當我嘗試使用AJAX更新接口的同時使用以下代碼時出現ActionView :: TemplateError :AJAX更新中的二級部分的TemplateError

CODE

我有以下結構:網站 - >建築 - >控制。每個循環都通過它的項目集合併爲每個項目呈現一個部分。從網站到建築工程就好了。但是,從建立到控制將引發模板錯誤。

值得注意的是,控件得到添加就好,如果我刷新頁面,所有的代碼工作 - 但由於某種原因,當我嘗試做的AJAX事情,部分(不是「rjs」文件)拋出一個錯誤。

有什麼想法?如果這太模糊,我很抱歉。

最好。

編輯 - 錯誤如下: TEMPLATE ERROR

回答

0

讓我們解構你的錯誤:上線#21

::的ActionView TemplateError(未定義的方法'控制的#)應用程序/視圖/ site_manager/_building.html.erb

第一部分ActionView::TemplateError是引發例外的只是類型,在這種情況下不是真的很有趣。然而,接下來的部分是,:

未定義的方法'控制的#<控制:0x21f61f0 >

這主要是告訴你,你要調用的方法的對象是名爲controls Control模型的一個實例。它還告訴你,該方法沒有定義controls方法。上述

上線#應用程序的21 /視圖/ site_manager/_building.html.erb

告訴你在哪裏可以找到這種錯誤/源,即線在site_manager 21分建設。這行看起來像:

<%for control in building.controls%> 

在這行你要調用一個變量,什麼是不工作的,根據錯誤信息這是一個controls方法; controls方法在該變量上未定義。該錯誤消息還告訴您該變量包含您的控件模型的一個實例。

現在,您已經命名了變量building,但它包含一個Control實例,這使我相信您已經以​​某種方式將另一個值放入building變量中,而不是您想要的值。

不幸的是,您不會顯示將值分配給building變量的代碼,所以我無法爲您找到更接近真實答案的代碼。希望以上內容足以讓您找到解決方案。