That's a Rails-specific idiom (although it's also available in Ruby 1.9)
that means {|e| e.symbol}.On Sun, Jul 12, 2009 at 11:17 AM, Noel <[email protected]> wrote: > > Thanks Nathan, > > This works and it's simple. > just for my understanding, i'm still a ruby n00b, what does this part mean > > (&:symbol) > > > > -Noel > > > On Sat, Jul 11, 2009 at 10:34 PM, Nathan Weizenbaum<[email protected]> > wrote: > > Yes, Steve is right: this is the expected and desired behavior. A line in > > source code pretty much means at least one line in output. If you want > them > > concatenated without whitespace, you don't want a partial, you want a > > helper. Or just item.footnotes.map(&:symbol).join(""). > > > > On Sat, Jul 11, 2009 at 9:55 PM, Noel <[email protected]> wrote: > >> > >> I got it to work, but still got the newline/ > >> > >> had to add this in application controller > >> > >> public :render_to_string > >> > >> > >> > >> <td> > >> tincidunt eu > >> <span class="footnote_symbols"> > >> 3 > >> 5 > >> </span> > >> </td> > >> > >> On Sat, Jul 11, 2009 at 6:50 PM, Noel<[email protected]> wrote: > >> > Well, I still get an error > >> > > >> > protected method `render_to_string' called for > >> > #<RestaurantsController:0x23e207c> > >> > > >> > Here's all the code > >> > > >> > http://pastie.org/private/rmow8bgpzv9btou0yqjg > >> > > >> > The reason I don't do this concatenation in the controller is that > >> > this is several partials deep. > >> > controller gets restaurants and eager loads other models. restaurants > >> > -> menus ... footnotes > >> > > >> > item :has_many footnotes > >> > > >> > The simplest solution is probably to just iterate thought > >> > item.footnotes in the _item partial. Just seemed to me that using a > >> > partial was the best practice. > >> > > >> > > >> > > >> > On Sat, Jul 11, 2009 at 6:19 PM, s.ross<[email protected]> wrote: > >> >> > >> >> Noel-- > >> >> > >> >> Can you be more specific than "didn't work"? Really, it looks like > >> >> what you've described is just taking two (or possibly) scalars from > >> >> the database and concatenating them as strings. If that's the case, > >> >> why not just do it in the controller instead of having a separate > >> >> partial? > >> >> > >> >> WRT why Haml adds the newline: I dunno, it always has added one when > >> >> you have a newline in your code. Rendering a partial that contains a > >> >> single line in a loop would suggest that the newline is appropriate. > >> >> I'm not sure that erb is doing the right thing. > >> >> > >> >> On Jul 11, 2009, at 5:50 PM, Noel wrote: > >> >> > >> >>> > >> >>> tried this in the helper and didn't work. > >> >>> > >> >>> Even if it did I don't think this work around is the way to go. > >> >>> > >> >>> Why does HAML adds the newline? > >> >>> > >> >>> > >> >>> > >> >>> > >> >>> On Sat, Jul 11, 2009 at 4:09 PM, s.ross<[email protected]> wrote: > >> >>>> > >> >>>> My bad. It's in ActionController::Base. > >> >>>> > >> >>>> Try > >> >>>> > >> >>>> controller.render_to_string(:partial => 'the_partial', :object => > >> >>>> number) > >> >>>> > >> >>>> I know somewhere I had to do this... can't dig up the code right > now. > >> >>>> > >> >>>> > >> >>>> On Jul 11, 2009, at 3:58 PM, Noel wrote: > >> >>>> > >> >>>>> > >> >>>>> y, put it in application_helper.rb > >> >>>>> > >> >>>>> > >> >>>>> On Sat, Jul 11, 2009 at 3:43 PM, Michael Hollins< > [email protected]> > >> >>>>> wrote: > >> >>>>>> > >> >>>>>> > >> >>>>>> Did you define the helper in application_helper.rb? > >> >>>>>> > >> >>>>>> render_to_string should be available there. > >> >>>>>> > >> >>>>>> > >> >>>>>> On 12/07/2009, at 8:26 AM, Noel <[email protected]> wrote: > >> >>>>>> > >> >>>>>>> > >> >>>>>>> I don't know how to implement this > >> >>>>>>> > >> >>>>>>> render_to_string is undefined. > >> >>>>>>> > >> >>>>>>> also I am guessing I have to pass in the item so that i can get > >> >>>>>>> all > >> >>>>>>> it's footnotes > >> >>>>>>> > >> >>>>>>> > >> >>>>>>> > >> >>>>>>> On Sat, Jul 11, 2009 at 3:14 PM, s.ross<[email protected]> > wrote: > >> >>>>>>>> I suspect this is a side effect of Haml putting elements on > >> >>>>>>>> different lines. > >> >>>>>>>> So because the partial is called twice, Haml inserts a newline. > >> >>>>>>>> Everything > >> >>>>>>>> in the generated HTML points to this. Possibly a way to get the > >> >>>>>>>> desired > >> >>>>>>>> effect is to use a helper: > >> >>>>>>>> def whats_the_number? > >> >>>>>>>> the_number = "" > >> >>>>>>>> numbers.each do |number| > >> >>>>>>>> the_number += render_to_string(:partial => 'the_partial') > >> >>>>>>>> end > >> >>>>>>>> the_number > >> >>>>>>>> end > >> >>>>>>>> Then in the view: > >> >>>>>>>> = whats_the_number? > >> >>>>>>>> Am I getting close (extra cute method names, etc., aside)? > >> >>>>>>>> > >> >>>>>>>> > >> >>>>>>>> On Jul 11, 2009, at 1:56 PM, Nathan Weizenbaum wrote: > >> >>>>>>>> > >> >>>>>>>> How are you calling the partial? > >> >>>>>>>> > >> >>>>>>>> On Sat, Jul 11, 2009 at 4:49 PM, Noel <[email protected]> > wrote: > >> >>>>>>>>> > >> >>>>>>>>> It prints twice bec the partial is called twice. Once for each > >> >>>>>>>>> symbol. > >> >>>>>>>>> There is no concat that I know of. > >> >>>>>>>>> > >> >>>>>>>>> Sent from my iPhone > >> >>>>>>>>> On Jul 11, 2009, at 12:56 PM, Nathan Weizenbaum > >> >>>>>>>>> <[email protected] > >> >>>>>>>>> > > >> >>>>>>>>> wrote: > >> >>>>>>>>> > >> >>>>>>>>> That's even more bizarre. The only thing I can guess is that > >> >>>>>>>>> both > >> >>>>>>>>> Haml and > >> >>>>>>>>> ERB are printing the thing twice. Is it possible that > >> >>>>>>>>> something in > >> >>>>>>>>> there is > >> >>>>>>>>> calling concat at some point? > >> >>>>>>>>> > >> >>>>>>>>> On Sat, Jul 11, 2009 at 2:45 PM, Noel <[email protected]> > >> >>>>>>>>> wrote: > >> >>>>>>>>>> > >> >>>>>>>>>> in erb i get > >> >>>>>>>>>> > >> >>>>>>>>>> <td> > >> >>>>>>>>>> tincidunt eu > >> >>>>>>>>>> <span class="footnote_symbols"> > >> >>>>>>>>>> StringString > >> >>>>>>>>>> </span> > >> >>>>>>>>>> </td> > >> >>>>>>>>>> > >> >>>>>>>>>> in HAML I get > >> >>>>>>>>>> > >> >>>>>>>>>> <td> > >> >>>>>>>>>> tincidunt eu > >> >>>>>>>>>> <span class="footnote_symbols"> > >> >>>>>>>>>> String > >> >>>>>>>>>> String > >> >>>>>>>>>> </span> > >> >>>>>>>>>> </td> > >> >>>>>>>>>> > >> >>>>>>>>>> Same extra line. > >> >>>>>>>>>> String > >> >>>>>>>>>> String > >> >>>>>>>>>> > >> >>>>>>>>>> vs > >> >>>>>>>>>> > >> >>>>>>>>>> StringString > >> >>>>>>>>>> > >> >>>>>>>>>> > >> >>>>>>>>>> On Sat, Jul 11, 2009 at 10:46 AM, Nathan > >> >>>>>>>>>> Weizenbaum<[email protected] > >> >>>>>>>>>>> > >> >>>>>>>>>> wrote: > >> >>>>>>>>>>> If that's what you get, it's not just a string. I don't know > >> >>>>>>>>>>> what it is > >> >>>>>>>>>>> if > >> >>>>>>>>>>> it produces that sort of inspect output. What happens if you > >> >>>>>>>>>>> call > >> >>>>>>>>>>> .class? > >> >>>>>>>>>>> > >> >>>>>>>>>>> On Sat, Jul 11, 2009 at 12:24 PM, Noel <[email protected]> > >> >>>>>>>>>>> wrote: > >> >>>>>>>>>>>> > >> >>>>>>>>>>>> - Yes, removing the h yields the same result > >> >>>>>>>>>>>> - Not sure about the haml executable, have to look up how > >> >>>>>>>>>>>> to do > >> >>>>>>>>>>>> that > >> >>>>>>>>>>>> - inspect produced this in erb > >> >>>>>>>>>>>> > >> >>>>>>>>>>>> <td> > >> >>>>>>>>>>>> tincidunt eu > >> >>>>>>>>>>>> <span class="footnote_symbols"> > >> >>>>>>>>>>>> "3""5" > >> >>>>>>>>>>>> </span> > >> >>>>>>>>>>>> </td> > >> >>>>>>>>>>>> > >> >>>>>>>>>>>> and this in HAML > >> >>>>>>>>>>>> > >> >>>>>>>>>>>> <td> > >> >>>>>>>>>>>> tincidunt eu > >> >>>>>>>>>>>> <span class="footnote_symbols"> > >> >>>>>>>>>>>> "3" > >> >>>>>>>>>>>> "5" > >> >>>>>>>>>>>> </span> > >> >>>>>>>>>>>> </td> > >> >>>>>>>>>>>> > >> >>>>>>>>>>>> > >> >>>>>>>>>>>> > >> >>>>>>>>>>>> > >> >>>>>>>>>>>> On Sat, Jul 11, 2009 at 6:15 AM, Nathan > >> >>>>>>>>>>>> Weizenbaum<[email protected] > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>> wrote: > >> >>>>>>>>>>>>> I honestly have no idea what's going on here. Does it > still > >> >>>>>>>>>>>>> happen > >> >>>>>>>>>>>>> if > >> >>>>>>>>>>>>> you > >> >>>>>>>>>>>>> remove the #h call? Does it happen from the haml > executable? > >> >>>>>>>>>>>>> What do > >> >>>>>>>>>>>>> you > >> >>>>>>>>>>>>> get > >> >>>>>>>>>>>>> if you do = h footnote_symbol.symbol.inspect? > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>> On Sat, Jul 11, 2009 at 2:16 AM, Noel <[email protected] > > > >> >>>>>>>>>>>>> wrote: > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> oh sorry, symbol is a string > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> Erb renders this (as copied from safari web inspector) > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> <td> > >> >>>>>>>>>>>>>> tincidunt eu > >> >>>>>>>>>>>>>> <span class="footnote_symbols"> > >> >>>>>>>>>>>>>> 35 > >> >>>>>>>>>>>>>> </span> > >> >>>>>>>>>>>>>> </td> > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> HAML renders this > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> <td> > >> >>>>>>>>>>>>>> tincidunt eu > >> >>>>>>>>>>>>>> <span class="footnote_symbols"> > >> >>>>>>>>>>>>>> 3 > >> >>>>>>>>>>>>>> 5 > >> >>>>>>>>>>>>>> </span> > >> >>>>>>>>>>>>>> </td> > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> Let me know if you need further clarification. > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> -Noel > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> On Fri, Jul 10, 2009 at 10:33 PM, Nathan > >> >>>>>>>>>>>>>> Weizenbaum<[email protected]> > >> >>>>>>>>>>>>>> wrote: > >> >>>>>>>>>>>>>>> I'm sorry, I'm still not getting it. Is > >> >>>>>>>>>>>>>>> footnote_symbol.symbol a > >> >>>>>>>>>>>>>>> string? > >> >>>>>>>>>>>>>>> An > >> >>>>>>>>>>>>>>> array? What's the actual HTML output of Haml vs. ERB? > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>> On Fri, Jul 10, 2009 at 3:34 PM, Noel < > [email protected]> > >> >>>>>>>>>>>>>>> wrote: > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> Here is an example: > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> HAML view has this > >> >>>>>>>>>>>>>>>> =h footnote_symbol.symbol > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> which produces this: > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> http://skitch.com/noelgomez/ba821 > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> I am talking about the space between the 4 and the 3 > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> In the DB the symbols are single characters. > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> Here is the same using erb which just prints 43 > >> >>>>>>>>>>>>>>>> <%=h footnote_symbol.symbol %> > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> http://skitch.com/noelgomez/ba826 > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> Not sure if I am doing something wrong, but odd that > erb > >> >>>>>>>>>>>>>>>> does > >> >>>>>>>>>>>>>>>> what I > >> >>>>>>>>>>>>>>>> expect. > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> On Fri, Jul 10, 2009 at 11:27 AM, Nathan > >> >>>>>>>>>>>>>>>> Weizenbaum<[email protected]> > >> >>>>>>>>>>>>>>>> wrote: > >> >>>>>>>>>>>>>>>>> I'm not entirely sure what you mean. What's the exact > >> >>>>>>>>>>>>>>>>> Ruby > >> >>>>>>>>>>>>>>>>> value > >> >>>>>>>>>>>>>>>>> of > >> >>>>>>>>>>>>>>>>> footnote_symbol.symbol? > >> >>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> On Fri, Jul 10, 2009 at 9:08 AM, Noel > >> >>>>>>>>>>>>>>>>> <[email protected] > >> >>>>>>>>>>>>>>>>> > > >> >>>>>>>>>>>>>>>>> wrote: > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> I have a very simple partial > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> = h footnote_symbol.symbol > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> I verified the length of symbol to be 1. My dev data > >> >>>>>>>>>>>>>>>>>> is > >> >>>>>>>>>>>>>>>>>> (*,1,2,3,4...) > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> when this renders as an example I get > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> 2 5 > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> but I was expecting > >> >>>>>>>>>>>>>>>>>> 25 > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> if I change the partial to erb instead of haml I do > get > >> >>>>>>>>>>>>>>>>>> 25. > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> I am using haml (2.2.0) > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> Any ideas where the extra space is coming from? > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> -Noel > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>>>> > >> >>>>>>>>>>>>> > >> >>>>>>>>>>>> > >> >>>>>>>>>>>> > >> >>>>>>>>>>> > >> >>>>>>>>>>> > >> >>>>>>>>>>>> > >> >>>>>>>>>>> > >> >>>>>>>>>> > >> >>>>>>>>>> > >> >>>>>>>>> > >> >>>>>>>>> > >> >>>>>>>>> > >> >>>>>>>>> > >> >>>>>>>>> > >> >>>>>>>> > >> >>>>>>>> > >> >>>>>>>> > >> >>>>>>>> > >> >>>>>>>> > >> >>>>>>>> > >> >>>>>>>>> > >> >>>>>>>> > >> >>>>>>> > >> >>>>>>>> > >> >>>>>> > >> >>>>>>> > >> >>>>>> > >> >>>>> > >> >>>>>> > >> >>>> > >> >>>> > >> >>>>> > >> >>>> > >> >>> > >> >>> > > >> >> > >> >> > >> >> >> > >> >> > >> > > >> > >> > > > > > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
