根据另一个列属性订购 table
order a table based on another column attribute
好的,所以在我的 rails 项目中,我有这些模型:pools
、memberships
和 week_scores
池has_many :memberships
会员资格 has_many :week_scores
WeekScore 也有一个属性 week:integer
告诉它是星期几。这样我就知道 table 是第 1 周还是第 6 周,等等
WeekScore 有一个属性 score:integer
,我在其中保存每个用户的分数。这让我觉得我应该将我的模型名称更改为 week_points...
无论如何,我想向我展示 table 池中的成员,这些成员按他们在某个 week_score
中获得的分数排序。
澄清一下
我现在获得 ceratin 周分数的方法是
member_score = member.week_scores.find_by(周: 5).score
//成员是池中的成员
例如,
假设是第 5 周,
我想显示池中每个成员第 5 周的分数,按分数降序排列,
- 大卫.... 30分
- 约翰..... 28分
- 乔什..... 28分
- 麦克....... 21分
...等等
实现此目标我需要什么查询?我试过加入,但它不会工作,但我是新手,所以我很确定这很容易做到,我太新了,不知道。
另外..我想阅读更多关于数据库和 sql 的 rails 的内容,以便我对此更加熟悉。有人愿意推荐一本书吗?
week5 = Pool.first.memberships.includes(:week_scores)
.where(:week_scores => {week: 5}).order('week_scores.score DESC')
week5.each do |membership|
puts "#{membership.member_name}: #{membership.week_scores.first.score}"
end
好的,所以在我的 rails 项目中,我有这些模型:pools
、memberships
和 week_scores
池has_many :memberships
会员资格 has_many :week_scores
WeekScore 也有一个属性 week:integer
告诉它是星期几。这样我就知道 table 是第 1 周还是第 6 周,等等
WeekScore 有一个属性 score:integer
,我在其中保存每个用户的分数。这让我觉得我应该将我的模型名称更改为 week_points...
无论如何,我想向我展示 table 池中的成员,这些成员按他们在某个 week_score
中获得的分数排序。
澄清一下
我现在获得 ceratin 周分数的方法是
member_score = member.week_scores.find_by(周: 5).score
//成员是池中的成员
例如,
假设是第 5 周,
我想显示池中每个成员第 5 周的分数,按分数降序排列,
- 大卫.... 30分
- 约翰..... 28分
- 乔什..... 28分
- 麦克....... 21分
...等等
实现此目标我需要什么查询?我试过加入,但它不会工作,但我是新手,所以我很确定这很容易做到,我太新了,不知道。
另外..我想阅读更多关于数据库和 sql 的 rails 的内容,以便我对此更加熟悉。有人愿意推荐一本书吗?
week5 = Pool.first.memberships.includes(:week_scores)
.where(:week_scores => {week: 5}).order('week_scores.score DESC')
week5.each do |membership|
puts "#{membership.member_name}: #{membership.week_scores.first.score}"
end