2011-03-29 44 views
1

我在Rails 3應用程序中存在關係問題。在我的一個模型的索引視圖中,我顯示了另一個模型的字段,並且它在本地完美工作,但是當我將它推送到Heroku時,我遇到了可怕的「我們很抱歉,但出錯了。」信息。當我檢查Heroku的日誌錯誤是「::的ActionView ::模板錯誤(未定義的方法`馬卡報」對零:NilClass):」部署到Heroku時Rails 3中的模型關係問題

這是馬卡型號:

class Marca < ActiveRecord::Base 
    has_many :modelos 
    has_many :vehiculos 

end 

這是莫德洛型號:

class Modelo < ActiveRecord::Base 
    belongs_to :marca 
    has_many :vehiculos 
end 

我想打電話給f.marca.nombre在莫德洛索引視圖,顯示從表「馬卡報」領域「農佈雷」。我在Modelo表中有一個marca_id字段。奇怪的是,它在本地工作,有時它在heroku上工作,如果我改變模型中關係線的順序。然後在推到heroku後,它再次停止工作。

我已經嘗試在heroku控制檯上運行'Modelo.reset_column_information'。

有什麼建議嗎?我應該做些什麼來加載模型中的更改? 謝謝!

+0

你經常遷徙嗎? – corroded 2011-03-29 06:18:24

+0

我在週末添加了幾欄,我做了幾次遷移。我試着在發佈之前運行'heroku rake db:migrate',它仍然是一樣的。你爲什麼要問? – capicua 2011-03-29 06:27:48

+0

你可能已經忘記了做一個遷移,這將使你的一些方法爲零。但現在看起來並不是這樣的情況 – corroded 2011-03-29 06:33:32

回答

0

在視圖中你正在做這個f.marca.nombre。 'nombre'是馬卡的一個領域。你必須在modelos_controller的新動作中這樣做。

def new 
    marca = Marca.find(params[:id]) 
    @madelo = Madelo.new(:marca => marca) 
end 

檢查marca是否爲零,是否設置marca.nombre?這是拋出錯誤的原因。

+0

我不必在新動作中聲明任何內容,但我檢查了marca爲零,並且在那裏某些Modelo沒有Marca的情況下,所以我必須這樣做:if modelo.marca = =無; modelo.marca_id;其他; modelo.marca.marca;結束。你的建議檢查零救了我。謝謝! – capicua 2011-03-30 04:49:09