【发布时间】:2017-09-03 18:13:19
【问题描述】:
我正在尝试找到一种方法来获取特定关系并将其移动到数组的末尾。基本上,我有一个current_account,我想把这个帐户移到帐户关系数组的末尾,这样当我遍历关系时它就会显示在最后。如果可能的话,我想创建一个范围并使用 SQL,这是我的尝试,但我还没有真正做到。
HTML
<% current_user.accounts.current_sort(current_account).each do |account| %>
<li><%= link_to account.name, switch_account_accounts_path(account_id: account.id) %></li>
<% end %>
此当前返回按 created_at 帐户排序的列表。我不希望它按创建时间排序,但 current_account 位于底部,所以我创建了一个名为 current_sort 的范围,但我不确定在这里做什么。
CURRENT_SORT SCOPE ON ACCOUNT
scope :current_sort, lambda { |account|
}
我希望这个范围在关联数组中最后返回传入的帐户。如何使用 SQL 或 Ruby 做到这一点?
【问题讨论】:
-
为什么不只是
sort_by { |v| v == current_account ? 1 : 0 }? -
@tadman 效果很好!没有理由不这样做。
-
你也可以使用
list - [ current_account ] + [ current_account ],但这看起来更麻烦。 -
是的,不过这很有趣。