2011-01-24 42 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异常。