私は最初のものをしました、そして私がそれを正しくしたかどうかチェックしたいですか?また、2番目のRubyORMを実行する方法がわかりません。テーブル「customers」と「orders」に対する次の2つのアクティブなレコード定義について考えてみます。注文テーブルには、「customers」の主キーを参照する外部キー「cust_key」があります。これは「cust_key」とも呼ばれます。
Table:
customers-
cust_key
address
orders-
order key
cust_key
order_priority
total_price
1 class Customer < ActiveRecord::Base
2 set_table_name "customers"
3 set_primary_key "cust_key"
4 has_many :orders, :foreign_key => "cust_key”
5 End
1 class Order < ActiveRecord::Base
2 set_table_name "orders"
3 belongs_to :customer, :foreign_key => "cust_key"
4 set_primary_key "order_key”
5 end
Consider the following piece of Ruby-on-Rails code.
1 <table>
2 <% Customers.all.each.do |c| %>
3 <tr>
4 <td><%= c.address %></td>
5 <td><%= c.orders.count() %></td>
6 </tr>
7 <% end %>
8 </table>
質問:
- このRuby-on-Railsを実行した結果のSQLクエリを提供します。合計でいくつのSQLクエリが実行されますか?
2クエリ
SELECTアドレスFROM顧客
SELECT COUNT(*) FROM orders where orders.cust_key= customers.cust_key;
- 1つのSQLクエリのみを発行し、上記のRuby-on-Railsフラグメントと同一のhtmlを作成するjspフラグメントを記述します。