我是Ruby的新手,我在Rails应用程序中遇到了以下代码:
@datasource = DataSource.find(datasource_id)
@datasource.partnertype.par_description我知道在Ruby中使用点符号我们可以访问方法。在本例中是实例方法,但是par_description会是什么呢?
方法可以返回Ruby中的另一个方法吗?
发布于 2019-04-04 23:41:44
对从第一个方法返回的值执行第二个方法
例如,考虑字符串"ABC“
然后代码"ABC".reverse.reverse返回"ABC“
这里"ABC".reverse返回字符串"CBA“,该字符串上的反向方法返回"ABC”
问题@datasource.partnertype可以是一个函数或相关记录,par_description可以是另一个函数或相关记录的partnertype或相关记录上的方法的相关列
正如您指定的那样,partnertype是一个表名
partnertype可以是与具有某种关联的数据源表相关联的表,例如belongs_to或has_one或任何其他
因此,@datasource.partnertype返回数据源的关联partnertype记录,@datasource.partnertype.par_description返回关联partnertype的par_description列
例如,考虑表User和Article,并假设这两个表都与关系描述相关联,即User as one has_one,并且文章属于用户,并且文章表具有名为description的列,则查询
@user = User.find(1) //1 us ID here
article = @user.article上面的查询返回用户的相关文章记录,现在如果我们运行article.description,它将返回该文章的描述
在我们可以使用的数据库中进行多次查询
@user.article.description然后,Ruby将执行一个查询并为我们返回描述
https://stackoverflow.com/questions/55519672
复制相似问题