Ruby on rails Rails模型依赖关系和Lambdas

Ruby on rails Rails模型依赖关系和Lambdas,ruby-on-rails,ruby,lambda,Ruby On Rails,Ruby,Lambda,我刚刚开始学习Rails,有一件事让我感到困惑,那就是在很多方法中使用lambdas。我不明白的是lambda主体内部的论点。我解释这一点的方式是,对于第一个参数,order是一个方法,其中的参数发布在。但是在另一个以DESC为参数的方法中发布了吗?这同样适用于原始方法参数的第二个参数 class用户{order('published_'at DESC,title ASC')} 结束 此行: has_many :articles, -> { order('published_at DESC

我刚刚开始学习Rails,有一件事让我感到困惑,那就是在很多方法中使用lambdas。我不明白的是lambda主体内部的论点。我解释这一点的方式是,对于第一个参数,order是一个方法,其中的参数发布在。但是在另一个以DESC为参数的方法中发布了吗?这同样适用于原始方法参数的第二个参数

class用户{order('published_'at DESC,title ASC')}
结束
此行:

has_many :articles, -> { order('published_at DESC, title ASC') }
有很多
正在定义用户和文章记录(在数据库中)之间的关系

lambda
lambda部件正在调用
.order()
。传递给
.order()
的参数是用SQL语法编写的字符串。(在Rails 4中,您可以执行
.order(发布于::desc,title::asc)


总的来说,该用户的
有许多
在相关文章中使用特定顺序

所以当你打电话时:

User.find(params[:id]).articles
所有文章都将返回,并按参数进行排序
published\u在DESC,title ASC


希望这有帮助

这是传递给
的选项的散列,有很多个

本例中的选项散列包括
order
方法:

定义的
order
接受数组参数,该参数作为字符串扩展为带有默认分隔符的
join
,因此您可以指定多个列:


我从未意识到.order方法中的参数使用的是SQL语法,现在这些都有意义了。非常感谢你!
User.find(params[:id]).articles