1

Rails 2.3.18 でアプリを作成しています。プロファイルに特定の属性を持つすべてのユーザーを見つけようとしています。これは、によって個々のユーザーに対して検出されuser.profileます。ユーザー プロファイルにはfirst_namelast_namebirthday、 などの列があります。

たとえば、特定の名前を持つすべてのユーザーを検索する ActiveRecord クエリを考案しようとしています。

何かのようなもの:

User.find(:where => {:first_name => "Tom"})

このクエリをどのようにフォーマットすればよいですか?

4

1 に答える 1

2

Rails 2.3 の場合:

User.find(:all, :conditions => 'profiles.first_name = "Tom"', :joins => :profile)

プロファイルを熱心にロードしたい場合は、:include代わりに次の:joinsように使用できます。

User.find(:all, :conditions => 'profiles.first_name = "Tom"', :include => :profile)

Rails 2.3 ではほとんどすべてが に組み込まれているfindため、 のドキュメントをチェックしてfind、利用可能なすべてのオプションを確認してください。

明らかに、ユーザー入力を名前条件に補間する場合は、必ずサニタイズしてください。

于 2013-08-26T18:47:57.233 に答える