I'd use a helper that takes the array of items and divides it up into sub-arrays of the desired length (maybe use Array#each_slice).
On Tue, Jun 30, 2009 at 6:05 PM, Noel <[email protected]> wrote: > > I have a somewhat related question > > Could I use this technique to conditionally nest some content? I'm > sorry if this is obvious from the last response, but I didn't get it > yet. > > I want to render some columns and in the controller I determine how > many items should be in each column. > > the markup I am trying to get is someting like > > %div#col_0 > ul.group > li.item > li.item > li.item > ul.group > li.item > li.item > %div#col_1 > ul.group > li.item > ul.group > li.item > li.item > > from index.html.haml I am calling render :partial on group and from > that partial I render :partial item > > So I need to be able to conditionally start / end the column div in > the group partial. > > How should I go about this? > > Thanks, > Noel > > > On Mon, Jun 29, 2009 at 7:31 PM, Nathan Weizenbaum<[email protected]> > wrote: > > Or more directly, > > > > def haml_tag_if(condition, *args, &block) > > if condition > > haml_tag *args, &block > > else > > yield > > end > > end > > > > That might be something worth adding to Haml::Helpers. Thoughts? > > > > On Mon, Jun 29, 2009 at 11:28 AM, Cataclyst <[email protected]> wrote: > >> > >> That's it, the helper method works great. :) Thanks a lot, Scott. > >> > >> André > >> > >> On 29 Jun., 18:50, scottwb <[email protected]> wrote: > >> > Try something like this...define a helper like: > >> > > >> > def conditional_div(condition, attributes, &block) > >> > if condition > >> > haml_tag :div, attributes, &block > >> > else > >> > haml_concat capture_haml(&block) > >> > end > >> > end > >> > > >> > Then, in your template do: > >> > > >> > - conditional_div(!skip_outer, {:id => "some_id"}) do > >> > / some content here > >> > > >> > On Jun 29, 6:33 am, Cataclyst <[email protected]> wrote: > >> > > >> > > Hi all, > >> > > >> > > so far I've been using haml with joy, but now I'm having a problem > I'm > >> > > not able to solve: I want to nest content within a div, but only if > a > >> > > specific local variable is true. The idea is to render a partial > with > >> > > or without the surrounding "container" div just as needed, in order > to > >> > > render a new item block or just replace the content within it (as an > >> > > AJAX response). > >> > > >> > > In ERB, I would do something similar to the following: > >> > > >> > > ###### > >> > > >> > > <% if !skip_outer -%> > >> > > <div id="some_id"> > >> > > <% end -%> > >> > > >> > > <!-- some content here --> > >> > > >> > > <% if !skip_outer -%> > >> > > </div> > >> > > <% end -%> > >> > > >> > > ####### > >> > > >> > > How do I accomplish the same thing with HAML? If-then statements > don't > >> > > really work: > >> > > >> > > - if !skip_outer > >> > > #some_id > >> > > / content here would be rendered only on !skip_outer, and even not > >> > > within the div#some_id > >> > > >> > > neither does it with an else case: > >> > > >> > > - if !skip_outer > >> > > #some_id > >> > > - else > >> > > / content here would be rendered only on skip_outer > >> > > >> > > Any ideas to get something like that work "gracefully", i.e. without > >> > > having to double the content in both if-else-branches? > >> > > >> > > Thanks in advance. > >> > > André > >> > > >> > > >> > > > > > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
