Not all situations are cut and dry, and I can't claim that I keep every line under 80 chars. But I'd try to reduce some of the cruft by abstracting each larger argument chunk into a helper, e.g.
=link_to favorite_title, favorites_path, :class => "dropmenu_trigger", :rel => "#dropmenu_favorites" The <em> and interpolation is a good place to start cleaning... it can't make every link_to statement a one-liner, but the line above is only ~100 chars (less than some of my uglier link_to statements, which tend to encourage lots of arguments) Best, Alex On Tue, Nov 24, 2009 at 10:48 PM, Jacques Crocker <[email protected]>wrote: > It's not always so cut and dry. Should I be creating a new helper for every > complicated link_to statement in rails? > > Here's one I picked out of a random project > > = link_to "Favorites <em class='count_favorites'>#{count_favorites}</em>", > "#"+resource(:users, :favorites), :class => "dropmenu_trigger", :rel => > "#dropmenu_favorites" > > Why should I force this to be on one line? And why should I create a helper > just for a single link_to statement used once on the site? > > On Nov 24, 2009, at 7:43 PM, Alexander Wallace wrote: > > This sounds more of an architectural problem than a markup problem. > Argument names for your helpers should (probably) be coming from your > controllers - e.g. = some_helper_function(@page, @section, @user) ... I'm > not sure what the necessity is to split arguments up into separate lines > unless they are strangely long (in which case they could just be shortened) > or are actually the return statements from other helpers (in which case it > would be cleaner to set those values in the controller)... > > Alex > > On Tue, Nov 24, 2009 at 10:37 PM, Nathan Weizenbaum <[email protected]>wrote: > >> Even in this case, it ends up working better if you factor those out into >> individual named helpers. "= get_new_posts_link" is a lot easier to >> understand than a long helper with a lot of arguments, even if that's the >> only place you use that helper. >> >> >> On Tue, Nov 24, 2009 at 7:31 PM, Jacques Crocker <[email protected]>wrote: >> >>> If thats the case, can we at least make it easier to call helpers with >>> lots of arguments? >>> >>> = some_long_helper_name arg1, >>> arg2, >>> arg3 >>> >>> >>> Comma + newlines are allowed when specifying attribute syntax. We should >>> allow it when calling helpers too. >>> >>> In a large haml project, I often have helpers just to provide arguments >>> to other helpers. Ends up being pretty terrible sometimes >>> >>> On Nov 24, 2009, at 5:44 PM, Nathan Weizenbaum wrote: >>> >>> The Haml multiline syntax is intentionally awkward. It's meant to >>> encourage people away from putting large blocks of Ruby in their views, and >>> towards moving their code into helpers. This almost always results in nicer >>> code and easier-to-read views. >>> >>> On Tue, Nov 24, 2009 at 10:15 AM, svoop <[email protected]> wrote: >>> >>>> Hi >>>> >>>> How about allowing an alternative multiline syntax: >>>> >>>> http://pastie.org/713107 >>>> >>>> Maybe this is a no go for the parser, though. >>>> >>>> Cheers, -sven >>>> >>>> -- >>>> >>>> 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. >>> >>> >>> >>> -- >>> 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] <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. > > > -- > 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.
