2010-06-24 44 views
8

剛開始學習Rails(3)。我正在試圖找出如何做一些可能極其微不足道的事情:從該模型的方法內部訪問模型實例字段的值。Rails:從模型方法訪問字段值

在我的情況:

def formal_name 
    @title + " " + @forename + " " + @surname 
end 

所有這三個@properties(這是在數據庫表中的所有字段)返回nil。他們不應該。

難以置信的是,如何訪問字段沒有在http://guides.rails.info/討論,谷歌什麼也沒有。

順便說一句,我來自Django,這東西很明顯。

回答

10

@語法用於(例如)在控制器中填充並用於視圖中的實例變量。不是你在這裏做什麼。

實際上,你只需要

def formal_name 
    title + " " + forename + " " + surname 
end 
0

您必須忽略@,您可以通過getter方法訪問它們。在某些情況下,由於含糊不清,您必須使用self.<field>

0
class MyModel << ActiveRecord 

    def formal_name 
    title = self.title # return title attribute of instance 
    forename = self.forename 
    surename = self.surname 

    # or something like this 
    self.title + self.surename 
    end 

end 
+1

爲什麼'self.fieldname'這裏,只是'fieldname'在對方的回答? 「自我」能讓你更具體地瞭解範圍嗎?例如如果您要在方法中聲明與該字段名稱相同的局部變量? – 2013-06-05 23:53:48

相關問題