Solved

cycle twice

Posted on 2008-10-10
5
323 Views
Last Modified: 2013-11-13
For some reason when I put two calls to cycle in a loop, neither cycle - something like

<%= cylce("<tr><td>", "<td>")  %>
<%= check_box_tag ...... %>
<%= cycle("</td>", "</td></tr>"  %>

Only the first option of both cycles ever fires.
I tried combining them, but putting a check_box_tag into the single cycle also caused it to not cycle.

Any help would be much appreciated.

Thanks!
0
Comment
Question by:ARACK04
  • 3
  • 2
5 Comments
 
LVL 1

Expert Comment

by:ozataman
ID: 22688155
Hi,

It seems that you are changing the cycle parameters. Would it be possible to do:

<%= cylce("<tr><td>", "</td></tr>")  %>
<%= check_box_tag ...... %>
<%= cycle("<tr><td>", "</td></tr>"  %>

Also, if what you are trying to do is automate the html tags, you might want to define a helper function as:

def my_check_box_tag(field_name, value, html_options)
  content_tag :tr do
    content_tag :td do
      check_box_tag(field_name, value, html_options)
    end
  end
end

then just call it from the view as

<%= my_check_box_tag(:object, 3) %>

Cheers,
OA
0
 

Author Comment

by:ARACK04
ID: 22688466
Thanks for the reply - the whole point is that I want to create a table with 2 columns, so that's why the cycle parameters are different.

Is there no way to get more than one cycle in the same scope to bahve properly?
0
 
LVL 1

Accepted Solution

by:
ozataman earned 500 total points
ID: 22688501
Well, I you could do that with a helper function as well. But if you're not comfortable, then you could do:

cycle("<tr>","</tr>", :name => 'row')
cycle("<td>","</td>", :name => 'col')
first col
cycle("<td>","</td>", :name => 'col')
cycle("<td>","</td>", :name => 'col')
second col
cycle("<td>","</td>", :name => 'col')
cycle("<tr>","</tr>", :name => 'row')

I still think it's a lot easier to just either use a helper method, or plain old html.

Cheers,


0
 

Author Comment

by:ARACK04
ID: 22689524
I'd love to use plain HTML - the problem is is I'm looping through a collection of objects, and if I'm using html, I would have to have two calls to the current object ie

<table>
<% @people.each do |p| %>
<tr><td>
<%= check_box_tag (p.id)
</td><td>
HOW DO I GET THE NEXT OBJECT?
</td></tr>
<%end%>
</table>
0
 

Author Comment

by:ARACK04
ID: 22692139
Yeah - I think the answer was there-  I just didn't see it - just add names - here's the original code fixed:

                  <%= cycle("<tr><td>", "<td>", :name => :c1)  %>
                  
                  <input type="checkbox" id=<%= @subjects[i].id %> name="SubsChecked[]" value=<%= @subjects[i].id %>
                  <%= "checked=checked" if params["SubsChecked"] != nil && params["SubsChecked"].index(@subjects[i].id.to_s) != nil %> />                        
                  <label for=<%= @subjects[i].id %>><%= @subjects[i].name %></label>

                  <%= cycle("</td>", "</td></tr>", :name => :c2)  %>
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Determining whether a check_box is checked using javascript 2 519
trying to get text between certain words 6 218
Upgrade Ruby from 1.8.7 to 1.9.2-p320 7 327
RVM setup 5 201
I recently rediscovered rails when I needed a holiday project and decided to build a management dashboard for the company where I work.  With it being a project done in my free time, I could focus my time on learning the basics rather than trying to…
In Ruby, Call or invoke a API DLL library is easily via Win32API class, win32-api gem or other gems. For general DLL API call, there are quite a few references, some good tips list below: http://www.rubytips.org/2008/05/13/accessing-windows-api-fro…

856 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question