Hello champs, Scenario is that i have a table called "employee" and a column for manager_id inside it.. and another table called "leaves" and having a column employee_id inside it.. I am copying here one record.. Employee table- id employee_name manager_id created_at .. 1 hemant 1 whatever 2 hemant 1 whatever Leave table- id employee_id status created_at .. 1 1 pending whatever 2 2 granted whatever Now i want to find out all the leave records of an employee whose manager id is session id.. like i logged in using employee_id = 1, then is should show me all leaves of employee whose manager id = 1.. Hope you people got me right, may be a one liner only .. :) -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Something like Leave.find_by_employee_id(employee_id, :joins => :employee, :conditions => ["employees.manager_id=?", manager_id]) -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Hi Sharagoz, This query is not working.. My model names are Leaves and Employee and table names are leaves and employees. So i tried this query as:- Leaves.find_by_employee_id (:employee_id, :joins => :employee, :conditions => [ "employees.manager_id = ?", session[:employee].manager_id ] ) But no results :''( Sharagoz -- wrote:> Something like > Leave.find_by_employee_id(employee_id, :joins => :employee, :conditions > => ["employees.manager_id=?", manager_id])-- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Hemant Bhargava wrote:> Hi Sharagoz, > > This query is not working.. My model names are Leaves and Employee and > table names are leaves and employees. So i tried this query as:- > Leaves.find_by_employee_id (:employee_id, :joins => :employee, > :conditions => [ "employees.manager_id = ?", > session[:employee].manager_id ] ) > > But no results :''(You shouldn''t be using both find_by_* and :conditions. Pick one or the other.> > Sharagoz -- wrote: >> Something like >> Leave.find_by_employee_id(employee_id, :joins => :employee, :conditions >> => ["employees.manager_id=?", manager_id])Best, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Jan 29, 2:11 pm, Hemant Bhargava <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> Hi Sharagoz, > > This query is not working.. My model names are Leaves and Employee and > table names are leaves and employees. So i tried this query as:- > Leaves.find_by_employee_id (:employee_id,You''re passing a symbol which I assume you didn''t want to do (you may also be more interested in find_all_by_employee_id) Fred :joins => :employee,> :conditions => [ "employees.manager_id = ?", > session[:employee].manager_id ] ) > > But no results :''( > > Sharagoz -- wrote: > > Something like > > Leave.find_by_employee_id(employee_id, :joins => :employee, :conditions > > => ["employees.manager_id=?", manager_id]) > > -- > Posted viahttp://www.ruby-forum.com/.-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Marnen Laibow-Koser wrote:> Hemant Bhargava wrote: >> Hi Sharagoz, >> >> This query is not working.. My model names are Leaves and Employee and >> table names are leaves and employees. So i tried this query as:- >> Leaves.find_by_employee_id (:employee_id, :joins => :employee, >> :conditions => [ "employees.manager_id = ?", >> session[:employee].manager_id ] ) >> >> But no results :''( > > You shouldn''t be using both find_by_* and :conditions. Pick one or the > other.Also note that the first argument in your code is different from what you were given. Hemant, I''ve said this to you before and I''ll say it again: go read some basic Rails tutorials. You''re posting a lot of beginner questions to the list, and that''s a waste of your time and ours. Please spend less time posting and more time reading.> >> >> Sharagoz -- wrote: >>> Something like >>> Leave.find_by_employee_id(employee_id, :joins => :employee, :conditions >>> => ["employees.manager_id=?", manager_id]) > > Best, > -- > Marnen Laibow-Koser > http://www.marnen.org > marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org-- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Marnen Laibow-Koser wrote:> Hemant Bhargava wrote: >> Hi Sharagoz, >> >> This query is not working.. My model names are Leaves and Employee and >> table names are leaves and employees. So i tried this query as:- >> Leaves.find_by_employee_id (:employee_id, :joins => :employee, >> :conditions => [ "employees.manager_id = ?", >> session[:employee].manager_id ] ) >> >> But no results :''( > > You shouldn''t be using both find_by_* and :conditions. Pick one or the > other.Ok fine.. Then i tried with using two queries:- 1) Leaves.find(:employee_id, :joins => :employee, :conditions => [ "employees.manager_id = ?", session[:employee].manager_id ] ) 2) Leaves.find_by_employee_id (:employee_id, :joins => :employee) Both of them are not working..>> -- > Marnen Laibow-Koser > http://www.marnen.org > marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org-- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Marnen Laibow-Koser wrote:> Marnen Laibow-Koser wrote: >> Hemant Bhargava wrote: >>> Hi Sharagoz, >>> >>> This query is not working.. My model names are Leaves and Employee and >>> table names are leaves and employees. So i tried this query as:- >>> Leaves.find_by_employee_id (:employee_id, :joins => :employee, >>> :conditions => [ "employees.manager_id = ?", >>> session[:employee].manager_id ] ) >>> >>> But no results :''( >> >> You shouldn''t be using both find_by_* and :conditions. Pick one or the >> other. > > Also note that the first argument in your code is different from what > you were given. > > Hemant, I''ve said this to you before and I''ll say it again: go read some > basic Rails tutorials. You''re posting a lot of beginner questions to > the list, and that''s a waste of your time and ours. Please spend less > time posting and more time reading.Ohh .. Ok Sorry but i have already tried it using myself.. Used googling.. Read joins .. But i came up with nothing thats why i posted my ques here.. Anewayz, I''ll take care of it in future as well..> >> >>> >>> Sharagoz -- wrote: >>>> Something like >>>> Leave.find_by_employee_id(employee_id, :joins => :employee, :conditions >>>> => ["employees.manager_id=?", manager_id]) >> >> Best, >> -- >> Marnen Laibow-Koser >> http://www.marnen.org >> marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org-- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Hemant Bhargava wrote:> Marnen Laibow-Koser wrote: >> Hemant Bhargava wrote: >>> Hi Sharagoz, >>> >>> This query is not working.. My model names are Leaves and Employee and >>> table names are leaves and employees. So i tried this query as:- >>> Leaves.find_by_employee_id (:employee_id, :joins => :employee, >>> :conditions => [ "employees.manager_id = ?", >>> session[:employee].manager_id ] ) >>> >>> But no results :''( >> >> You shouldn''t be using both find_by_* and :conditions. Pick one or the >> other. > > Ok fine.. Then i tried with using two queries:- > 1) Leaves.find(:employee_id, :joins => :employee, :conditions => [ > "employees.manager_id = ?", session[:employee].manager_id ] ) > > 2) Leaves.find_by_employee_id (:employee_id, :joins => :employee) > > Both of them are not working.. >Because your first argument in each case is *still* wrong. Look carefully at the example that was given to you. If you can''t see the difference here, then you have no business programming in Ruby without further study.> >> > >> -- >> Marnen Laibow-Koser >> http://www.marnen.org >> marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org-- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Part of the issue may also be that your model/table names are NOT following convention. The model should be singular, the table name plural underscored lower case: Model Table Leave leaves Employee employees Assume you also have these in your classes: class Leave < ActiveRecord::Base belongs_to :employee end class Employee < ActiveRecord::Base has_many :leaves belongs_to :manager, :class_name => "Employee" has_many :subordinates, :class_name => "Employee", :foreign_key => "manager_id" end so for Employee (Manager) with id 24: manager = Employee.find(24) leaves = manager.subordinates.collect(&:leaves) (You can also declare a relationship in the Employee model to mimic this if desired in a has_many :through) If you made manager a separate model/table you''d adjust the relationships as appropriate. Niels On Jan 29, 2010, at 9:11 AM, Hemant Bhargava wrote:> Hi Sharagoz, > > This query is not working.. My model names are Leaves and Employee and > table names are leaves and employees. So i tried this query as:- > Leaves.find_by_employee_id (:employee_id, :joins => :employee, > :conditions => [ "employees.manager_id = ?", > session[:employee].manager_id ] ) > > But no results :''( > > Sharagoz -- wrote: >> Something like >> Leave.find_by_employee_id(employee_id, :joins => :employee, :conditions >> => ["employees.manager_id=?", manager_id]) > > -- > Posted via http://www.ruby-forum.com/. > > -- > You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en. >-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.