Rails中的数据结构,用于对多个值进行排序和查找

时间:2012-08-16 16:43:08

标签: arrays ruby-on-rails-3 multidimensional-array data-structures

我正在使用这个程序,在输入大量有关您的高尔夫游戏的信息后,计算您的差点。然后,在侧面(就像在Excel中),我有一张桌子,列出了高尔夫球场名称,最大差点和距离。

我希望通过以下方式将高尔夫球场名称,差点和距离信息实施到我的程序中:一旦程序计算出您的差点,它会查看此表,并且(通过某种排序) ,找到你的差点低于课程最大差点的所有课程。然后,根据这些课程,它可以通过最短距离找到前三名。

我希望这是有道理的。让这个工作的最佳方法是什么?我应该创建一个存储这些值的表还是某种类型的数组?

1 个答案:

答案 0 :(得分:0)

您可以制作一个名为“课程”的表格,用于存储高尔夫球场名称,距离,最大差点以及其他任何内容。然后在您的控制器中执行以下操作:

@user = current_user //or however you're finding your user
@courses = Course.where("max_handicap >= ?", @user.handicap).order("distance ASC").limit(3)

这假设您的课程表中有一些名为“max_handicap”和“distance”的列,以及您的users表中名为“handicap”的列。该查询查找所有具有障碍的课程> =用户差点,按最短距离命令它们到最长,并取前三个。然后在您的视图中显示它们,执行以下操作:

<% @courses.each do |course| %>
  <h1><%= course.name %></h1>
  <h2>Handicap: <%= course.max_handicap %></h2>
  <h3>Course Distance: <%= course.distance %></h3>
<% end %>