Использование основных объединений в продолжении

Я использую sequel gem в Ruby для подключения к базе данных sqlite (предоставляется rails). У меня есть различные Userи различные Projects. Я хочу найти уникальный объект проекта 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)
Другие вопросы по тегам