Ruby on Rails - Como juntar duas tabela

Tenho duas tabelas (assuntos e páginas) nas relações um para muitos. Eu quero adicionar critérios de assuntos e páginas para analisar um sql, mas o progresso tem sido muito lento e muitas vezes se depara com problemas. Sou novato em trilhos, por favor ajude.

class Subject < ActiveRecord::Base
  has_many :pages
end

class Page < ActiveRecord::Base
  belongs_to :subject 
end

dados de amostra em assuntos, listados três colunas abaixo:

id  name    level
1   'Math'  1
6   'Math'  2
...

Dados da amostra em páginas, colunas listadas abaixo:

id  name                    subject_id
--  --------------------    ----------
2   Addition                1
4   Subtraction             1
5   Simple Multiplication   6
6   Simple Division         6
7   Hard Multiplication     6
8   Hard Division           6
9   Elementary Divsion      1

Dado que não conheço o subject.id, sei apenas o nome e o nível do assunto e o nome da página. Aqui está o sql que eu quero gerar (ou algo semelhante que atingiria o mesmo resultado):

select subjects.id, subjects.name, pages.id, pages.name from subjects, pages
 where subjects.id = pages.subject_id
   and subjects.name = 'Math'
   and subjects.level = '2'
   and pages.name like '%Division'  ;

Espero obter duas linhas no resultado:

subjects.id     subjects.name   pages.id    pages.name 
-----------     -------------   --------    -----------
6               Math            6           Simple Division
6               Math            8           Hard Division

Este é um sql muito simples, mas não consegui obter o que queria nos trilho

Here is my rails console:  

>> subject = Subject.where(:name => 'Math', :level => 2)
  Subject Load (0.4ms)  SELECT `subjects`.* FROM `subjects` WHERE `subjects`.`name` = 'Math' AND `subjects`.`level` = 2
[#<Subject id: 6, name: "Math", position: 1, visible: true, created_at: "2011-12-17 04:25:54", updated_at: "2011-12-17 04:25:54", level: 2>]
>> 
>> subject.joins(:pages).where(['pages.name LIKE ?', '%Division'])
  Subject Load (4.2ms)  SELECT `subjects`.* FROM `subjects` INNER JOIN `pages` ON `pages`.`subject_id` = `subjects`.`id` WHERE `subjects`.`name` = 'Math' AND `subjects`.`level` = 2 AND (pages.name LIKE '%Division')
[#<Subject id: 6, name: "Math", position: 1, visible: true, created_at: "2011-12-17 04:25:54", updated_at: "2011-12-17 04:25:54", level: 2>, #<Subject id: 6, name: "Math", position: 1, visible: true, created_at: "2011-12-17 04:25:54", updated_at: "2011-12-17 04:25:54", level: 2>]
>> 
>> subject.to_sql
"SELECT `subjects`.* FROM `subjects`  WHERE `subjects`.`name` = 'Math' AND `subjects`.`level` = 2"
>> subject.size
1
>> subject.class
ActiveRecord::Relation

1ª declaração: subject = Subject.where (: name => 'Math',: level => 2) 2ª declaração: subject.joins (: pages) .where (['pages.name LIKE?', '% Division' ])

Questões

Os resultados do sql encadeado realmente retornam duas linhas, mas subject.size diz apenas 1?Como digo para retornar colunas de: páginas também?Por que subject.to_sql ainda mostra o sql da instrução 1 apenas, por que não incluiu o sql encadeado da instrução Essencialmente, o que preciso escrever de maneira diferente para analisar o sql listado acima (ou obter o mesmo resultado

Muito Obrigado