<分区> 分区>
我几天前开始学习 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]})"