2013-04-18 59 views
0

我用Rails 3.2.11和Ruby 1.9.3在Mac OS X山獅如何從控制器訪問虛擬屬性

我有一個用戶模式,我創建了一個名爲消息

虛擬屬性
attr_accessor :message 

在我的代碼,我試試這個:

if condition == true 
    self.message = "Value is True." 
else 
    self.message = "Value is not True" 

在我的控制,我試試這個

def method 
    user = User.find(1) 
    flash[:message] = user.message 
end 

但閃光消息不顯示任何內容。這是零。我怎樣才能將我在模型中設置的值傳遞給控制器​​?非常感謝!

+0

使用實例變量而不是局部變量。實例變量的前綴是一個'@'符號,所以在你的情況下,它將是'@ user'而不是'user' – Zippie

+0

它不會有什麼區別。在我的實際代碼中,我使用了實例變量。 –

+0

,即使「用戶」只是一個局部變量,它仍然是一個用戶對象,所以它應該仍然有消息屬性。 –

回答

3

似乎邏輯:當你從你的數據庫中檢索一個對象,沒有理由它的attr_accessor應該包含任何東西。

用你的邏輯堅持,你寧願:

  • 刪除attr_accessor中

  • 創建User類的方法。

像這樣:

def message 
    if condition 
    "Value is True." 
    else 
    "Value is not True" 
    end 
end 

要知道你的數據連接,查看是不是一個好的做法。

+0

這一個爲我工作。謝啦。 –

相關問題