3

インスタンス変数に格納している別の SQL 結果セットに対して SQL クエリを実行するより良い方法があるかどうか疑問に思っています。

私のコードは次のようになります。

def index
  id = current_user.id.to_s

  #First SQL query
  @messages = Message.where("user_id = ? OR recipient_id = ?", id, id).group('recipient_id')
end

そして、私が持っているビューでは

<% @messages.each do |m| %>
<!-- Second SQL query -->
<% r = Tutor.find(m.recipient_id).user %>
  <%= "#{r.first_name + ' ' + r.last_name}" %><br />
  <%= m.subject %><br />
  <%= m.body %><br />
  <%= m.user_id %><br />
  <%= m.recipient_id %><br />
<% end %>

@messages をループしてから、それらの各オブジェクトに対しても SQL クエリを実行していますが、これを行うためのより良い (よりスマートな) 方法があるかどうか疑問に思っています。ありがとう!

4

1 に答える 1