几天前我开始学习 Rails,也没有太多的 Ruby 经验。鉴于以下关系,我现在的问题是试图找到某个用户的所有项目。
用户模型
class User < ActiveRecord::Base
has_many :projects_users
has_many :projects, :through => :projects_users
attr_accessible :email, :firstname, :id, :lastname, :password, :username, :password
has_secure_password
end
项目模型
class Project < ActiveRecord::Base
has_many :projects_users
has_many :users, :through => :projects_users
attr_accessible :date_created, :id, :name
end
项目_用户模型
class ProjectsUsers < ActiveRecord::Base
belongs_to :project
belongs_to :user
end
到目前为止,我的尝试是:
@projectuserid = ProjectsUsers.find(:all, :conditions => "user_id=#{session[:user_id]}")
@projects = Project.all(@projectuserid)
但它似乎@projectuserid
是一个数组本身,所以查询不起作用。我知道这个HABTM关系模型可以在一行代码中实现,但我对Rails的了解仍然很少。
我的另一种方法看起来像这样,但返回一个空白结果:
@projects = Project.find :all,
:conditions => "id in (select distinct project_id from projects_users where user_id=#{session[:user_id]})"