Okay just a little wee bit of curiosity. I was doing

code like this for the partial:


- fields_for "booking[booking_passenger][]", my_passenger do |
passenger|
  %li
    %fieldset.passenger-info
      %ul
        %li
          = passenger.label :first_name
          = passenger.text_field :first_name

and I keep seeing the javascript call:

$('.passenger-info ul').append('#{ escape_javascript( render :partial
=> "new_passenger", :locals => {:booking => @booking }) }');

as this when i view source:

$('.passenger-info ul').append('');

so i scratch my head and try out a gazillion things and finally try to
do something stupid:

= fields_for "booking[booking_passenger][]", my_passenger do |
passenger|

and it suddenly worked. WHY? I mean we don't print out fields_for
right? its always written as <% fieldes_for %> in erb? so why the diff
in HAML?


On Aug 9, 11:00 pm, Eumir <[email protected]> wrote:
> Hi Jeroen,
>
> It works now thanks! However, I don't know if it's haml or just my
> server crashing when I add a @booking.passengers.build to the partial.
> There's even no error message of sort, I just have to kill -9 when I
> refresh the page
>
> On Aug 7, 4:49 pm, Jeroen van Dijk <[email protected]> wrote:
>
>
>
> > Hope you found an solution already, but what I see it that you are including
> > erb tags in the javascript code. Change <%= %> to #{ } and I guess you
> > should be able to get it working:
>
> > :javascript
> >  $('#number_of_passengers').change(function() {
> >     var $num_of_passengers = $(this).val();
> >     for($i=0; $i<$num_of_passengers;$i++) {
> >       $('.passenger-info ul').append('#{
> > escape_javascript( render :partial => "new_passenger", :locals
> > {:booking => @booking }) }');
> >     }
> >  })
>
> > HTH
>
> > On Thu, Aug 5, 2010 at 5:38 PM, Eumir <[email protected]> wrote:
> > > Hi guys,
>
> > > The functionality I plan on doing is to insert some form elements
> > > depending on a number chosen from a select tag.
>
> > > I have a select tag called for number_of_passengers, and i plan to
> > > dynamically append new passenger fields for the number chosen. Say I
> > > select 2 from number_of_passengers, then 2 forms should appear in a
> > > fieldset. these forms contain name, age weight etc.
>
> > > I tried following this:
>
> > >http://stackoverflow.com/questions/261752/call-a-rails-function-from-...
>
> > > and just converted it to haml-speak but I get errors whenever I use
> > > the :javascript tag. Also I don't think I can "escape" the javascript
> > > tag once I am in it
>
> > > :javascript
> > >  $('#number_of_passengers').change(function() {
> > >     var $num_of_passengers = $(this).val();
> > >     for($i=0; $i<$num_of_passengers;$i++) {
> > >       $('.passenger-info ul').append('<%=
> > > escape_javascript( render :partial => "new_passenger", :locals
> > > {:booking => @booking }) %>');
> > >     }
> > >  })
>
> > > also since I am in a form_for, how do I pass the @booking variable to
> > > the local? It seems really complicated and I'm planning of doing the
> > > dirty way out of just looping 20 times(20 max passengers) then just
> > > hide/show them depending on the selected number. But that's too dirty
> > > don't you think?
>
> > > --
> > > You received this message because you are subscribed to the Google Groups
> > > "Haml" group.
> > > To post to this group, send email to [email protected].
> > > To unsubscribe from this group, send email to
> > > [email protected] <haml%[email protected]>.
> > > For more options, visit this group at
> > >http://groups.google.com/group/haml?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Haml" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected].
For more options, visit this group at http://groups.google.com/group/haml?hl=en.

Reply via email to