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 -~----------~----~----~----~------~----~------~--~---