Forum: Ruby on Rails Need help for Helper

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Eaec1838b76398f2b3e91ada57ac0a73?d=identicon&s=25 Tomasz Tomczyk (Guest)
on 2007-01-27 02:35
(Received via mailing list)
I need a helper, which will render a table in my customized style.
I wrote a code like this:

template.rhtml:
<% @column_names = ["Name", "Age", "Sex"] %>
<%= table_show @column_name %>

helper.rb
def table_show(names)
  for name in names
    content_tag ( :div, name, :class => 'table_header' )
  end
end

Which should give me an output like this:
  <div class='table_header'>Name</div>
  <div class='table_header'>Age</div>
  <div class='table_header'>Sex</div>

Unfortunately I have only one line of output which looks like:
  NameAgeSex

After few trials it seems, that this output is being generated by line:
"for name in names", because deleting "content_tag..." doesn't make any
differences.

What am I doing wrong?
I suppose that helper def does treat an Array like a String...

Regards,
Tomasz Tomczyk
2b891e820c238ded365d035771603f21?d=identicon&s=25 Bill Walton (Guest)
on 2007-01-27 16:25
(Received via mailing list)
Hi Tomasz,

Tomasz Tomczyk wrote:

> Which should give me an output like this:
>  <div class='table_header'>Name</div>
>  <div class='table_header'>Age</div>
>  <div class='table_header'>Sex</div>
>
> Unfortunately I have only one line of output which looks like:
>  NameAgeSex

Are you saying you have one _visible_ line?  Or that, when you look at
the
DOM you've actually got one string?  Without seeing your code, my first
guess would be that you've got a CSS problem, not a Rails problem.  You
might want to try the block form of content_tag, just to help separate
the
issues.

hth,
Bill
Eaec1838b76398f2b3e91ada57ac0a73?d=identicon&s=25 Tomasz Tomczyk (Guest)
on 2007-01-28 13:51
(Received via mailing list)
Finally I've found the problem - it was me :-)
There was no return clause in the helper, which caused it to print
everything in "for" loop.

Now its OK.

Thanks anyway,
Tomasz Tomczyk
This topic is locked and can not be replied to.