Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ruby on Rails 3 .each do Problem

I'm sort of new to Ruby on Rails and have been learning just fine, but have seem to run into a problem that I can't seem to solve.

Running Rails 3.0.9 & Ruby 1.9.2

I'm running the following statement in my View:

<%= @events.each do |f| %>
    <%= f.name %><%= link_to "View", event_path(f) %><br/><hr/>
<% end %>

And this in my controller:

class AdminController < ApplicationController
  def flyers
    @events = Event.all
  end
end

This goes through each of the records and outputs the appropriate name, but the problem is that at the end it displays all of the information for all of the records like so:

    [#<User id: 1, username: "test account", email: "[email protected]", password_hash:    "$2a$10$Rxwgy.0ZEOb0lMGEIliPBeB/jPSp8roeKdbMvXcLi32R...", password_salt: "$2a$10$Rxwgy.0ZEOb0lMGEIliPBe", created_at: 2111359287.2303703, updated_at: 2111359287.2303703, isadmin: true>]

I'm new to this site, so I'm not sure if you need any more details, but any help is appreciated, after all, I'm still learning.

Thanks in advance.

like image 691
Amzziipan Avatar asked Aug 04 '11 17:08

Amzziipan


2 Answers

You should be using <%, not <%= for your .each line, so

<%= @events.each do |f| %>

should be

<% @events.each do |f| %>
like image 126
Dylan Markow Avatar answered Nov 07 '22 23:11

Dylan Markow


.each returns the entire array at the end once it is finished the loop. <%= ... %> prints out the value of the statment, which is the value returned by .each <% ... %> does not. So you want:

<% @events.each do |f| %>
    <%= f.name %><%= link_to "View", event_path(f) %><br/><hr/>
<% end %>
like image 36
Kyle d'Oliveira Avatar answered Nov 07 '22 23:11

Kyle d'Oliveira