アクティブレコードクエリから返されたレコードのコレクションがある場合、そのレコードのIDを知っていれば、そのレコードの1つにどのようにアクセスできますか?アクティブレコードレコードコレクションからIDでレコードを取得するにはどうすればよいですか?
答えて
これには2つの方法があります。あなたはrecords
と呼ばれるActiveRecordの関係を持っており、id
を探していると仮定すると:
あなたはActiveRecord::FinderMethods#findメソッドを使用できますが、これは、データベースへの別の呼び出しになります:
records.find(id)
あなたはRubyのEnumerable#findメソッドを呼び出してデータベースを使用せずにコレクションを検索することができます。
records.find { |r| r.id == id }
彼らは同じ名前を共有しますが、我々は、上記の例では二つの異なるfind
メソッドを呼び出しています。最初のデータベースはより多くのデータベースリソースを使用し、後者はより多くのアプリケーションサーバーリソースを使用します。私はどちらが最終的に速いかわからない。
同じ名前を持っていても、[ActiveRecord :: FinderMethods#find](http://api.rubyonrails.org/v5.1/classes/ActiveRecord/FinderMethods.html#method-i-find)と後者は[Enumerable#find](http://ruby-doc.org/core-2.4.2/Enumerable.html#method-i-find)です。 – max
TableName.find(id)
とする必要があります。
それとも、すでにアクティブレコードクエリ内のレコードの束を持っている場合は、のような既知のIDを持つものを引き出すことができます。
active_record_query = User.where(first_name: "Jim")
record = active_record_query.where(id: record_id).first
はい。 findメソッドを使用できます。詳細については
# Assuming you were retrieving an ActiveRecordRelation s
s = MyRecord.where(name: "test")
s.find(id)
参照:http://api.rubyonrails.org/v5.0/classes/ActiveRecord/FinderMethods.html#method-i-find
私は、ユーザーの結果セットを持っていると私はそのセットにID = 3を持つユーザーを見つけたいと仮定すると:もちろん
foo = User.all
user3 = foo.find {|x| x.id == 3}
あなたがIDを知っていれば、あなたはそれを見つけることができます。仮に私は、ユーザーテーブルを持っていると私は私がしたいユーザーのIDが3である知っている:
user3 = User.find(3)
あなたはActiveRecord::FinderMethods#findと、データベースからのレコードを見つけることができます。
Thing.find(1)
は、SELECT things.* FROM things WHERE things.id = 1
のデータベースにクエリします。レコードが見つからない場合はActiveRecord::NotFoundError
を発行してください。 FindはIDのリストと共に使用することもできます。
すでにデータベースからロードされているリレーションがある場合は、Enumerable#findまたはその別名#detect
を使用します。 ActiveRecord :: RelationにはEnumerableが含まれているため、配列に明示的にキャストしていない場合でも、.to_a
で動作します。
各エントリをenumに渡してブロックします。ブロック が偽でない最初のものを返します。一致するオブジェクトがない場合、ifnoneを呼び出し、指定された場合は 結果を返します。そうでない場合はnilを返します。
例:
[1,2,3,4].find(&:even?) # => 2
User.all.load.find { |u| u.id == 1 }
- 1. Facebook IDからユーザーIDを取得するにはどうすればよいですか?
- 2. Odoo 9、self.pool.getを使用してレコードIDを取得するにはどうすればよいですか?
- 3. ストライピングの料金レスポンスから得意先IDを取得するにはどうすればよいですか?
- 4. プロセスのメインスレッドID(IDでわかる)を取得するにはどうすればよいですか?
- 5. alertifyでIDを取得するにはどうすればいいですか?
- 6. Backbone.jsコレクションからそのIDでモデルを取得するにはどうすればよいですか?
- 7. Request $ requestでURLからIDを取得するにはどうすればよいですか?ビュー上(Laravel 5.3)
- 8. バックアップから取得したデータストアプロジェクトでユニークIDを保証するにはどうすればよいですか?
- 9. Jquery - e.targetからネストされたDIVのIDを取得するにはどうすればよいですか?
- 10. レコードのリストを取得するにはどうすればいいですか?idは(1,2,3,8,23,45)
- 11. このテーブルから一意のレコードを取得するにはどうすればよいですか?
- 12. URLから動画IDを取得するにはどうすればよいですか? (DailyMotionは)
- 13. MMS idを取得するにはどうすればいいですか?
- 14. デバイスIDを取得するにはどうすればいいですか?
- 15. アイテムレスポンスIDを取得するにはどうすればいいですか?
- 16. ContactsContracts APIを介してユーザーからfacebook idを取得するにはどうすればよいですか?
- 17. Laravel 5.4:今週からレコードを取得するにはどうすればよいですか?現在の日のすべてのレコードを取得するに
- 18. WP Rest API vs - 著者IDをv2から取得するにはどうすればよいですか?
- 19. idから<select>の値を取得するにはどうすればよいですか?
- 20. 電話番号からIDを取得するにはどうすればよいですか?
- 21. Cocoaのアプリケーション名からバンドルIDを取得するにはどうすればよいですか?
- 22. Facebookの動画サムネイルを動画IDから取得するにはどうすればよいですか?
- 23. JAX-RS Webサービス内からセッションIDを取得するにはどうすればよいですか?
- 24. URLからfacebookのアルバムIDを取得するにはどうすればよいですか?
- 25. appiumのリソースIDからビューオブジェクトを取得するにはどうすればよいですか?
- 26. javascriptのSPListItemCollectionからIDを取得するにはどうすればよいですか?
- 27. メッセージIDからメッセージを取得するにはどうすればよいですか?
- 28. サブカテゴリIDから親カテゴリを取得するにはどうすればよいですか?
- 29. プロビジョニングプロファイルからコード署名IDの名前を取得するにはどうすればよいですか?
- 30. ダイアログからビューIDを取得するにはどうすればよいですか?
はい、あなたは確かにすることができます。 – mudasobwa