我对Ruby和Rails非常陌生,并且正在构建我的第一个应用程序。我有一个方法(enroll_again),它通过了所有的代理合同,并对它们进行排序,最后到期。此方法使用[[Agentname,numdays]]返回2d数组。我试图在所有帐户的所有合约上以更高级别运行此方法。通过多个二维数组并对它们进行排序
<% @accounts.each do |account| %>
<% account.contracts.enroll_again.each do |x,y| %>
<li>
<%= "#{y} Days remain on \n #{x}" %>
</li>
<%end%>
<%end%>
上面的代码返回特定于帐户的排序元素列表,但整个列表仍未排序。我试着将enroll_again返回的所有元素放到一个单独的数组中,但是我的语法必须是错误的,因为它总是返回一个空列表。
编辑:
def self.enroll_again
d= Date.today
contract = Contract.all
temp = contract.map do |x|
[
Account.where(:accounts => { :id => x.account_id }).first.name),
((Date.strptime(x.startd,'%m/%d/%Y') + x.duration.months)-d).to_i
]
end
temp.sort_by{|x,y|y}
end
哪个数据库? – 2013-02-21 00:31:41