Hello, I am working on a project, and on one form we have a select (drop- down) box where the user needs to be able to select from a list of clients. The box is currently being populated with: <%= collection_select(:client, :id, @account.clients, :id, :name) %> The problem is that some of these clients may have already been selected, and we need to remove them from the list. Is this possible? Thanks! --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Do clients have a .selected property or some such that you can use to figure out which clients are already selected? If so you could do, e.g., @account.clients.map{|c| !c.selected} I would think. -----Original Message----- From: rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org [mailto:rubyonrails-talk@googlegroups.com] On Behalf Of Neal L Sent: Thursday, October 16, 2008 2:10 PM To: Ruby on Rails: Talk Subject: [Rails] Removing values from a select (drop-down) box Hello, I am working on a project, and on one form we have a select (drop- down) box where the user needs to be able to select from a list of clients. The box is currently being populated with: <%= collection_select(:client, :id, @account.clients, :id, :name) %> The problem is that some of these clients may have already been selected, and we need to remove them from the list. Is this possible? Thanks! --~--~---------~--~----~------------~-------~--~----~ 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@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
That sort of worked, it returned an array of true, false values corresponding to !c.selected. That did help me figure out the solution though. Here''s what worked: @account.clients.map{ |c| !c.can_edit(@unit) ? c : nil }.compact I didn''t have a selected property, but I did have a can_edit(unit) method that returns true or false. Clients that can_edit the @unit are already on the list... Only thing is, this runs a separate database query for each client for the can_edit(@unit) call. Is there any way to do this in one query? Thanks! On Oct 16, 4:13 pm, "Pardee, Roy" <parde...-go57ItdSaco@public.gmane.org> wrote:> Do clients have a .selected property or some such that you can use to figure out which clients are already selected? If so you could do, e.g., > > @account.clients.map{|c| !c.selected} > > I would think. > > -----Original Message----- > From: rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org [mailto:rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org] On Behalf Of Neal L > Sent: Thursday, October 16, 2008 2:10 PM > To: Ruby on Rails: Talk > Subject: [Rails] Removing values from a select (drop-down) box > > Hello, > > I am working on a project, and on one form we have a select (drop- > down) box where the user needs to be able to select from a list of clients. The box is currently being populated with: > > <%= collection_select(:client, :id, @account.clients, :id, :name) %> > > The problem is that some of these clients may have already been selected, and we need to remove them from the list. Is this possible? > > Thanks!--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Sent from my iPhone On 16 Oct 2008, at 22:44, Neal L <neal.lober-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > That sort of worked, it returned an array of true, false values > corresponding to !c.selected. That did help me figure out the > solution though. Here''s what worked: > > @account.clients.map{ |c| !c.can_edit(@unit) ? c : nil }.compact >Sounds like you''re looking for the reject function.> I didn''t have a selected property, but I did have a can_edit(unit) > method that returns true or false. Clients that can_edit the @unit > are already on the list... > > Only thing is, this runs a separate database query for each client for > the can_edit(@unit) call. Is there any way to do this in one query? >That depends entirely on what''s in your can_edit function. Fred> Thanks! > > On Oct 16, 4:13 pm, "Pardee, Roy" <parde...-go57ItdSaco@public.gmane.org> wrote: >> Do clients have a .selected property or some such that you can use >> to figure out which clients are already selected? If so you could >> do, e.g., >> >> @account.clients.map{|c| !c.selected} >> >> I would think. >> >> -----Original Message----- >> From: rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org [mailto:rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org >> ] On Behalf Of Neal L >> Sent: Thursday, October 16, 2008 2:10 PM >> To: Ruby on Rails: Talk >> Subject: [Rails] Removing values from a select (drop-down) box >> >> Hello, >> >> I am working on a project, and on one form we have a select (drop- >> down) box where the user needs to be able to select from a list of >> clients. The box is currently being populated with: >> >> <%= collection_select(:client, :id, @account.clients, :id, :name) %> >> >> The problem is that some of these clients may have already been >> selected, and we need to remove them from the list. Is this >> possible? >> >> Thanks! > >--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
> On 16 Oct 2008, at 22:44, Neal L <neal.lober-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > > > That sort of worked, it returned an array of true, false values > > corresponding to !c.selected. That did help me figure out the > > solution though. Here''s what worked: > > > > @account.clients.map{ |c| !c.can_edit(@unit) ? c : nil }.compact > > > > Sounds like you''re looking for the reject function.Ach, right--or select maybe: @account.clients.select{|c| c.can_edit(@unit)} Sorry for the bum steer.> > I didn''t have a selected property, but I did have a can_edit(unit) > > method that returns true or false. Clients that can_edit the @unit > > are already on the list... > > > > Only thing is, this runs a separate database query for each client for > > the can_edit(@unit) call. Is there any way to do this in one query? > > > That depends entirely on what''s in your can_edit function.If your controller is doing an Account.find() to populate your @account var, you may be able to avoid the extra queries by throwing a :include => ''clients'' on there...> Fred > > Thanks!> > On Oct 16, 4:13 pm, "Pardee, Roy" <parde...-go57ItdSaco@public.gmane.org> wrote: >> Do clients have a .selected property or some such that you can use to >> figure out which clients are already selected? If so you could do, >> e.g., >> >> @account.clients.map{|c| !c.selected} >> >> I would think. >> >> -----Original Message----- >> From: rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org >> [mailto:rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org >> ] On Behalf Of Neal L >> Sent: Thursday, October 16, 2008 2:10 PM >> To: Ruby on Rails: Talk >> Subject: [Rails] Removing values from a select (drop-down) box >> >> Hello, >> >> I am working on a project, and on one form we have a select (drop- >> down) box where the user needs to be able to select from a list of >> clients. The box is currently being populated with: >> >> <%= collection_select(:client, :id, @account.clients, :id, :name) %> >> >> The problem is that some of these clients may have already been >> selected, and we need to remove them from the list. Is this >> possible? >> >> Thanks! > >--~--~---------~--~----~------------~-------~--~----~ 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@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---