Undefined method `each' for


#1

Hi all. I am very new to ruby rails and I got this error.

undefined method `each’ for #Video:0x370bdd8 in selectaction.rhtml
that calls video controller
3:


4:
5: <% x = 0 %>
6: <% for video in @videos %>
7:
<%= link_to(image_tag(“videos/#{video.video_thumbnail}”,
8: :size => ‘132x99’,
9: :border => 5,

c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/base.rb:1792:in
method_missing' #{RAILS_ROOT}/app/views/videos/selectaction.rhtml:6:in_run_rhtml_videos_selectaction’

In videos_controller
def selectaction
@videos = Video.find_by_subject(“action”)
end

Now I didn’t define find_by_subject, but doesn’t rails do that for me
if I have a database table called video with with subject as a field?
And does ruby define video for me?


#2

That worked. Thank you so much.


#3

removed_email_address@domain.invalid wrote:

Hi all. I am very new to ruby rails and I got this error.

undefined method `each’ for #Video:0x370bdd8 in selectaction.rhtml
that calls video controller
3:


4:
5: <% x = 0 %>
6: <% for video in @videos %>
[snip]
In videos_controller
def selectaction
@videos = Video.find_by_subject(“action”)
end

Video.find_by_subject will only return 1 record. @videos then gets set
to a single Video, and when you try to loop through a single video
rather than a collection of them, you get 'undefined method ‘each’.

You want: @videos = Video.find_all_by_subject(“action”)

Dan M.