我對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