I have a table with 2 columns, employee_id and job_id. There is no ''id'' column. I can find a record by using the condition "employee_id = ? and job_id ?" but I cant seem to get delete or destroy to work. delete is an undefined method, and destroy fails because [id] = null Is there any way to get this to work, or do I just need to add an ID column? -- 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Bob Br wrote:> I have a table with 2 columns, employee_id and job_id. There is no ''id'' > column.It sounds like this is a join table between your Employee and Job models for a has_and_belongs_to_many relationship.> but I cant seem to get delete or destroy to work. delete is an undefined > method, and destroy fails because [id] = null > > Is there any way to get this to work, or do I just need to add an ID > column?You probably want to remove entries through either the Employee class or the Job class (depending on which makes the most sense at the time). For example: If: job = Job.find(... # some condition emp = Employee.find(... # some condition then either: job.employees.delete(emp) or: emp.jobs.delete(job) -- 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
> It sounds like this is a join table between your Employee and Job models > for a has_and_belongs_to_many relationship.Not as familiar with the mappings, but that sounds right. Heres what I had in mind. employees - table with X employees jobs - table with Y jobs exclusions - table of jobs that employees want hidden For example User A wants to see all of the jobs except for 1,2 and 3 User B wants to see all except 1, 7 and 12. With the relationship you proposed, can I add and delete records from the exclusion table without removing the job or the employee? Using the above, User B now wants to see job 1, and User A wants to hide job 9. I might be misinterpreting the code you wrote, but would that code just delete the mapping (exclusion table) or would it delete the emp/job record and delete the exclusions along with it?> If: > > job = Job.find(... # some condition > emp = Employee.find(... # some condition > > then either: > > job.employees.delete(emp) > > or: > > emp.jobs.delete(job)-- 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Bob Br wrote:> With the relationship you proposed, can I add and delete records from > the exclusion table without removing the job or the employee? Using the > above, User B now wants to see job 1, and User A wants to hide job 9.That''s right. Treat a_job.employees and an_emp.jobs as arrays to add and remove from. You can create items as you add them if necessary, but removing them will not delete either item, just the association. Obviously you can change the name of the association as an_emp.jobs doesn''t read right for excluded jobs and Rails will assume a join table of employees_jobs so you''ll have to specify that, too. Have a look at the documentation for has_and_belongs_to_many for full details. Also google for this as there are many good tutorials on how to handle these relationships. -- 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Excellent! Thanks for the help Bob -- 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---