私は数日前に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
Project_Userモデル
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リレーションシップモデルの1行のコードで実現できることはわかっていますが、それでもRailsについての知識はほとんどありません。
私の別のアプローチは次のようになりますが、空白の結果が返されます。
@projects = Project.find :all,
:conditions => "id in (select distinct project_id from projects_users where user_id=#{session[:user_id]})"