<分区>

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

评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!