[解決済み] ActiveRecord.find(array_of_ids), 順番を保持する。
2022-12-04 05:08:45
質問
あなたが
Something.find(array_of_ids)
を実行したとき、結果の配列の順番は
array_of_ids
.
検索を行い、順序を保持する方法はありますか?
ATM 私はIDの順序に基づいて手動でレコードを並べ替えますが、それはちょっとお粗末なものです。
UPD: もし、順番を指定するために
:order
パラメータと何らかの SQL 句を使用して順序を指定することが可能であれば、どのようにすればよいでしょうか?
どのように解決するには?
答えはmysqlのためだけである
mysqlには、以下のような関数があります。 FIELD()
.find()での使い方はこんな感じです。
>> ids = [100, 1, 6]
=> [100, 1, 6]
>> WordDocument.find(ids).collect(&:id)
=> [1, 6, 100]
>> WordDocument.find(ids, :order => "field(id, #{ids.join(',')})")
=> [100, 1, 6]
For new Version
>> WordDocument.where(id: ids).order("field(id, #{ids.join ','})")
更新しました。 これはRails 6.1で削除される予定です。 Railsのソースコード
関連
-
[解決済み】Rails: sudo "コマンドが認識されないのはなぜですか?
-
[解決済み] Ruby/Rails の「フック」とは何ですか?
-
[解決済み] gemのインストールができない - gemネイティブ拡張の構築に失敗 - そのようなファイルをロードできない -- mkmf (LoadError)
-
[解決済み] AWS S3です。アクセスしようとしているバケットは、指定されたエンドポイントを使用してアドレスされている必要があります。
-
[解決済み] Railsでpng画像を文字列形式で表示するには?
-
[解決済み] Ruby on Railsでsimple_formを使うさまざまな方法|何が違うの?
-
[解決済み] Herokuの問題 : あなたが探しているページは存在しません。
-
[解決済み] Railsで `before_action` での `only:` はどのように機能するのですか?
-
[解決済み] "render :nothing => true" は空のプレーンテキストファイルを返すのですか?
-
[解決済み] 属性を割り当てる場合、引数としてハッシュを渡す必要がある
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Rails。Ruby on Railsの移行でデータベースカラムの名前を変更するにはどうすればよいですか?
-
[解決済み】bcrypt LoadError: Cannot load such file
-
[解決済み】PG::ConnectionBad: fe_sendauth: パスワードが供給されない
-
[解決済み] どのようにrailsでラジオボタンを正しく使用するには?
-
[解決済み] 変更欄のRailsマイグレーション
-
[解決済み] どなたか、collection_selectをわかりやすく説明していただけませんか?
-
[解決済み] rspec 3 - クラスメソッドをスタブ化する
-
[解決済み] 検索 vs 発見する by vs どこに
-
[解決済み] Oauth2 Instagram API "リダイレクトURIが登録されたリダイレクトURIと一致しない"
-
[解決済み] Railsです。gemを使った特定バージョンのライブラリのアンインストール