2011-08-23 43 views
0

我使用Ruby中的sequel gem连接到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? 

回答

3

假设你有project_nameuser_name,并希望做一个连接,发现两者相匹配的项目:

Project.join(:users, :id=>:user_id). 
select(:projects.*). 
first(:users__name=>user_name, :projects__name=>project_name)