I meant the flow of control in the code.
>From the view to the controller action, to the RJS and back to the
view.
I dont see a call to ajaxAddToMop.
What are the names of the files with the RJS and the select_box?

>if I do a delete or if I remove the
>contact from the form I also do a replace like on an New contact and it does
>give me a prompt.  If I do a "New" contact or "edit"  I do not get a
>"prompt" in the select.

I personally cant understand that.

On Apr 13, 9:47 am, Chris Habgood <chabg...@gmail.com> wrote:
> Well it is a telecom thing.  If you perform maintenance on equipment then
> you need a form explaining what to do and how to do it.
>
> Anyway, the partial gives me a "prompt" if I do a delete or if I remove the
> contact from the form I also do a replace like on an New contact and it does
> give me a prompt.  If I do a "New" contact or "edit"  I do not get a
> "prompt" in the select.  all CRUD operations use the same partial to update
> the select, doing ajax inline with the form.
>
> On Sun, Apr 12, 2009 at 11:26 PM, Ram <yourstruly.vi...@gmail.com> wrote:
>
> > Not able to understand the flow of control.
> > What is mop? Could you explain a bit further? This is interesting..
>
> > On Apr 12, 3:13 am, Me <chabg...@gmail.com> wrote:
> > > Ok this is weird, I have full CRUD working for my contacts table all
> > > doing ajax inline in my form.  the odd one is that my delete funtion
> > > uses the same partial as the one above and when I do the rjs for the
> > > update on the select it DOES give me the "Prompt" to select User.
> > > Delete is the only one that the prompt actually comes back on.  Same
> > > partial used on all of the updates to the contact select.
>
> > > On Apr 11, 12:26 pm, Chris Habgood <chabg...@gmail.com> wrote:
>
> > > > OK, I used the ID of the select and did a replace:
>
> > > > RJS:
> > > > page[:showcontact].hide
> > > > page[:contactlist].show
> > > > page.insert_html :bottom,'contactlist',  :partial => 'ajaxAddToMop',
> > :locals
> > > > => {:contact => @contact }
> > > > page[:contact_id].replace :partial => "updateContactList", :locals =>
> > > > {:contacts => @contacts, :mop => @mop }
>
> > > >  Partial:
>
> > > > <%= select('contact', 'id', @contacts, {:prompt => 'Select Contact'} ,{
> > > > :onchange => remote_function(:url => {     :controller => 'contacts',
> > > > :action => "ajaxshowcontact", :id => @mop.id},
>
> > > > :with => "'contactid=' + this.value" )
>
> > > > } ) %>
>
> > > > No change.  Prompt is still not showing up.  Data is there jsut not he
> > > > prompt.  I need the prompt as I use an ajax on change so the user can
> > > > view/edit/update the user info if necessary inside the form.  the
> > controller
> > > > code basically is updating the contact lsit.
>
> > > > 1.Gets all contacts.
> > > > 2. gets all contacts associated with the form
> > > > 3. subtracts the two and givesme an array with the contacts not
> > associated
> > > > woit the form.
> > > > 4.  As I add users to the form I make the association to the form.
> >  This way
> > > > I can update the list easier than keeping track of an array.
>
> > > > Here is the controller code, no real significance.
>
> > > > def ajaxAddToMop
> > > >     @contact = Contact.find(params[:contact][:id], :include =>
> > [:company])
> > > >         @mop = Mop.find(params[:id])
> > > >         @mop.contacts << @contact
> > > >         a = Contact.all.collect{|p| [ p.id ] }
> > > >         b = @mop.contacts.all.collect{|p| [ p.id ] }
> > > >         c = a-b
> > > >         ar = Array.new
> > > >         c.each{|arr|
> > > >             arr.each{|p|
> > > >                 ar << p
> > > >             }
> > > >         }
>
> > > >         @contacts = Contact.find(:all, :conditions => ["id IN (?)",
> > > > ar]).collect {|p| [ p.name, p.id ] }
> > > >   end
>
> > > > On Sat, Apr 11, 2009 at 11:42 AM, Jaryl Sim <quantum.crus...@gmail.com
> > >wrote:
>
> > > > > Hmm, hope you can post up more code, even from your controller as
> > > > > well.
>
> > > > > I think that instead of replacing the entire select tag, you can
> > > > > simply replace its contents. Firstly, give the select tag an id so
> > > > > that in your RJS, you can replace_html with options_for_select or
> > > > > whatever function you might want to use.
>
> > > > > On Apr 11, 8:01 am, Chris Habgood <chabg...@gmail.com> wrote:
> > > > > > Ok, that select I put is the only thing in the partial.
> > > > > > Here is the rjs:
> > > > > > page[:contact_list].replace_html :partial => 'updateContactList',
> > :locals
> > > > > =>
> > > > > > { :contact => @contact }
>
> > > > > > On Fri, Apr 10, 2009 at 6:58 PM, Phlip <phlip2...@gmail.com>
> > wrote:
>
> > > > > > > Me wrote:
> > > > > > > > I have this select in a form:
> > > > > > > > <%= select('contact', 'id', @contacts, {:prompt => 'Select
> > Contact'}
> > > > > ,
> > > > > > > > { :onchange => remote_function(:url => {      :controller =>
> > > > > > > > 'contacts', :action => "ajaxshowcontact", :id => @mop.id},
> > :with =>
> > > > > > > > "'contactid=' + this.value" )
> > > > > > > > } ) %>
>
> > > > > > > > The prompt works in the form but when I do a replace_html on it
> > I get
> > > > > > > > everything but the prompt.
>
> > > > > > > Post the replace_html code?
>
> > > > > > > Next, put only that <%= select %> thing into a partial (yes tiny
> > > > > otherwise
> > > > > > > useless partials are a Best Practice), then do rjs.replace_html
> > > > > :my_div,
> > > > > > > :partial => 'my_partial'. (I call "rjs" the variable everyone
> > else
> > > > > calls
> > > > > > > "page",
> > > > > > > because the interthing has too many "page" variables all over
> > it!)
>
> > > > > > > You could also see about putting the :url into a named route.
> > Just
> > > > > about
> > > > > > > anything in Rails that's "named" is a best practice, too!
--~--~---------~--~----~------------~-------~--~----~
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@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to