2012-01-04 82 views
0

我的應用程序似乎隨機地拋出一個「ActionView :: Template:Error(undefined method`first_name'for nil:NilClass)」error正試圖將網格數據加載到表單中。ActionView :: Template:Error(undefined method'first_name'for nil:NilClass)

完整的錯誤

ActionView::Template::Error (undefined method `first_name' for nil:NilClass): 
3:   t = @conts 
4:       xml.tag!("row",{ "id" => t.id }) do 
5: 
6:         xml.tag!("cell", t.first_name) 
7:         xml.tag!("cell", t.last_name) 
8:       xml.tag!("cell", t.email) 
9:         xml.tag!("cell", t.phone_1) 

而且下面是控制器文件

def compdata 
     @conts = Continfo.find_by_id(params[:id]) 
    end 

對應compdata RXML文件

 xml.instruct! :xml, :version=>"1.0" 
     xml.tag!("rows") do 
    t = @conts 
     xml.tag!("row",{ "id" => t.id }) do 

      xml.tag!("cell", t.first_name) 
      xml.tag!("cell", t.last_name) 
      xml.tag!("cell", t.email) 
      xml.tag!("cell", t.phone_1) 
      xml.tag!("cell", t.phone_2) 
      xml.tag!("cell", t.homepage) 
      xml.tag!("cell", t.skype) 
    end 
end 

其非常緊迫,請幫助我們修復錯誤..

回答

0

第一項

看起來你已經打開了幾個其他的類似的問題(herehere),現在,兩者的當前,這一次它看起來像你的@conts值目前nil沒什麼意思被帶回時它跑搜索:

def compdata 
    @conts = Continfo.find_by_id(params[:id]) 
end 

你肯定有與id等於params[:id]在表中提供的值?

如果在那裏有不匹配,那將是我會看的第一個地方。

第二項

您還可能會碰到試圖調用方法each@conts因爲find_by_id方法帶回一個數組的問題。如果您希望它遍歷每條記錄而不是每個鍵/ val,請嘗試使用find_all_by_id,這將返回數組

第三項

看你的其他問題後,它看起來像,這是不同的語法,但你不應該遍歷@conts再這樣嗎?

xml.tag!("rows") do 
    @conts.each do |t| 
    xml.tag!("row",{ "id" => t.id }) do 
     xml.tag!("cell", t.first_name) 
     xml.tag!("cell", t.last_name) 
     xml.tag!("cell", t.email) 
     xml.tag!("cell", t.phone_1) 
     xml.tag!("cell", t.phone_2) 
     xml.tag!("cell", t.homepage) 
     xml.tag!("cell", t.skype) 
    end 
    end 
end 

這將是分配t,而不是像t = @conts的方式,特別是如果你打算步很多。

+0

非常感謝,新年快樂..我們在ID表中有值,但我們仍然無法從網格加載數據來形成。我們必須使用php來構建我們的應用程序,這裏是我們的鏈接,請通過它,並告訴我如何將網格與表單連接起來,以加載形式的值,http://docs.dhtmlx.com/doku。 PHP的?編號=教程:dhtmlx_today:gridlink – user993164 2012-01-04 12:30:44

+0

是否有一個原因,你試圖做到這一點與XML標籤和所有這一切?在rails中,所有表單和列表都應該在生成腳手架時預先構建。 – jstim 2012-01-04 16:42:16

相關問題