Использование основных объединений в продолжении
Я использую sequel
gem в Ruby для подключения к базе данных sqlite (предоставляется rails). У меня есть различные User
и различные Project
s. Я хочу найти уникальный объект проекта user.username/project.name
, если он существует. Какой самый элегантный способ сделать это? У меня соединение работает и т.д.
DB = Sequel.connect 'sqlite:///path/to/sqlite'
class User < Sequel::Model
end
class Project < Sequel::Model
end
# How do I retrieve the project object using project_name, user_name
# project.name == project_name
# project.user_id = xxx
# and there is a user with id xxx and username user_name?
1 ответ
Решение
Если у вас есть project_name
а также user_name
и хотите сделать объединение и найти проект, который соответствует обоим:
Project.join(:users, :id=>:user_id).
select(:projects.*).
first(:users__name=>user_name, :projects__name=>project_name)