从ruby for循环中排序结果

时间:2015-11-09 19:11:22

标签: ruby erb

我正在尝试从本地活动记录数据库中提取一些信息。 (这些是医生) 最初在我看来,我有一个像这样的每个循环

<% @doctors.each do |doctor| %>

这很不错,它列出了我需要的所有医生名单。但是现在我需要根据他们的名字拉这些家伙,但也按字母顺序排列。

所以我的方法是这样的,

<% for last_name in @doctors.last_name.all(:order => "last_name") %>

然后我最后在代码中调用它,如此

<%= doctor.last_name %>

但是我一直收到错误。我得到的错误是......

undefined method `last_name' for #

在我的rails控制台中,我可以通过go找到医生的姓氏,

doctor.last.last_name

所以,当我能够在数据库中轻松找到它时,我不确定为什么该方法是未定义的。有人会知道我对此缺少什么吗?

1 个答案:

答案 0 :(得分:1)

@doctors集合没有last_name属性,您需要执行以下操作:

@doctors = Doctor.all.order(:last_name)

然后

<% @doctors.each do |doctor| %>
    <%= doctor.last_name %>
<% end %>