2011-01-24 54 views

回答

2

@patient是調用它的類的實例變量。這很可能發生在您的控制器中,那麼它就是您的控制器的實例變量,稱爲患者。 @ -char只是表示實例變量部分。

患者。 Rails遵循ORM(對象關係映射),這意味着對於每個數據庫表都有對應的類。這些包裝數據庫表的類提供執行數據庫表級操作的方法。這裏的病人只是班級的名字。

查找是Patient類提供的類級方法。

(17)是給find方法的參數。 Rails將搜索患者表並嘗試查找id = 17的記錄。

3

簡單地說:這將找到patient dataid=17並將其設置在@patient對象中。

希望你能理解它。

+0

在什麼數據庫表中? – pedrozath 2011-01-24 11:53:50

+0

該表爲病人 – 2011-01-24 12:01:55

2

上面的代碼從表中獲取記錄(通過Rails約定,'患者')並將其分配給@patient實例變量。

的發現是,可通過從ActiveRecord的繼承:: Base的建模患者的方法

模型病人直接映射到數據庫中的表,你在你的database.yml 參數17已配置匹配用表的主鍵和匹配記錄返回。由於它與主鍵相匹配,所以只找到一條記錄,並返回。

如果找不到值爲17的記錄,則會拋出ActiveRecord :: RecordNotFound異常。