association

Suppose i have three tables user,projects,user_projects.      their attributes are:           tablename attributes:          1)user id(pk),name,email,password          2)projects id(pk),projectname,start_date,end_date          3)user_projects id(pk),user_id,project_id

   their relationship are     user:        has_many:user_projects        has_many:projects,:through =>:user_projects

    projects:        has_many:user_projects        has_many:users,:through =>:user_projects

   user_projects:        belongs_to :user        belongs_to :project

   suppose i want

         @users=User.find(:first,:condition=>["name=?","James"])           @projects=@users.projects(:all,:condition=>["projectname=?","temp"])

   but this will all project related to user name james...         but the condition inside(@users.projects) is not executed,i am         unable to get the information of projectname temp in which james works..      pls provide some code how i give condition inside it.       pls help immediately

  user_projects:       belongs_to :user       belongs_to :project

The Rails convention is that this table should be named projects_users, i.e., alphabetical order of the tables that form the join table is expected.

  suppose i want

        @users=User.find(:first,:condition=>["name=?","James"])          @projects=@users.projects(:all,:condition=>["projectname=?","temp"])

Also, change :condition to :conditions.

Let us know how those changes work.

Craig

> user_projects: > belongs_to :user > belongs_to :project

The Rails convention is that this table should be named projects_users, i.e., alphabetical order of the tables that form the join table is expected.

> suppose i want

> @users=User.find(:first,:condition=>["name=?","James"]) > @projects=@users.projects(:all,:condition=>["projectname=?","temp"])

And of course here you're missing the call to find

Fred