В данный момент я выполняю свои сложные запросы, так сказать.Но я продолжаю сталкиваться с проблемами.Например.
query = "SELECT histories.candidate_id
FROM histories
WHERE histories.institution_id IN (?)
GROUP BY histories.candidate_id
HAVING COUNT(*)= ?"
cand = [Code.find_by_sql([query,
params ['поиски'] [ключ], params ['поиски'] [ключ] .size])]
class History < ActiveRecord::Base
belongs_to :candidate
end
create_table "histories", :force => true do |t|
t.string "job_title"
t.date "start_date"
t.date "finish_date"
t.string "basic_salary"
t.string "bonus"
t.integer "institution_id"
t.integer "candidate_id"
t.datetime "created_at"
t.datetime "updated_at"
end
class Candidate < ActiveRecord::Base
# has_and_belongs_to_many :codes
has_many :codes, :through => :CandidatesCodes
has_many :histories
has_many :contacts
has_many :compensations
end
Это возвращает список идентификаторов кандидатов ... но я хочу, чтобы он возвращал список кандидатов, как бы я поступил таким образом?
Это предложение Бриана, и я пробовал это, но я получаюнеинициализированная константа История :: Кандидаты
cand = History.find(:all,
:joins => :candidates,
:select => "candidates.*",
:conditions => [ "institution_id IN (?)", params['searches'][key] ],
:group => [ "candidate_id HAVING count(*) = ?", params['searches'][key].size ]
)