2012-10-22 105 views
0

我有一個rails應用程序,當我同時打開控制檯和db:console時,它們對於應該是相同字段的值有不同的值。我正在使用發送功能來更改值。這是在模型的方法:Rails 3控制檯和db:控制檯不同

def toggle_approve(field) 
    self.send(field) 
    if(self.send(field).blank?) 
     self.send(field + '=', "new_value") 
     puts self.send(field) 
    else 
     self.send(req + '=', "") 
    end 
    rank.save 
    end 

在我的數據庫:控制檯(sqllite)一切總是正確的,但在我的定期再培訓局的控制檯是錯誤的。然後,我的視圖將顯示erb控制檯中的內容,而不是sqllite。我不明白在後臺會發生什麼事情會導致這個問題。任何幫助都會很棒。

+0

無法清楚地理解。但是,嘗試刪除表中存在的數據,然後重試。有時候,它會給出不同的價值。 – Vinay

回答

0

從您提供的詳細信息中很難確定,但我認爲您的視圖使用的是過時版本的數據。嘗試在更新的記錄上調用.reload,只是在更新之後和演示之前。看看是否解決了你的問題。

+0

你是對的,但是如何以這樣的移動目標爲基礎的觀點?我們如何調試它?有沒有辦法使視圖基於後臺數據庫而不是控制檯中的內容,或者有沒有辦法在每次調用後重新加載數據? – jhamm

+0

這是MVC和綁定模式之間的區別。數據由控制器檢索,並且是需要更新視圖的數據。你最好的選擇可能是重新設計它,所以你得到相同的功能,但不需要重新加載。如果您無法幫助解決問題,請確定必須重新加載的情況,並在助手或模型本身中自動執行該行爲。 –

+0

是否有文檔顯示數據何時更新以及如何顯示?我會重構它,但是我想以最好的方式來實現這個目標的一些方向?在prod應用程序中,它的功能與開發中的一樣嗎?或者,我在這裏的功能是否能夠發揮同樣的作用? – jhamm