I'm new in this game, so this might be a easy question, but I have
done my google, without result, so I will try this....
I'm learning ROR, and I'm using Patrick Lens 'Ruby on Rails' book.
(This is written for ror 1.x - and I'm using NetBeans 6.1 - ror 2.x -
this might be the problem...)
But...
I have made this Controller:
class StoryController < ApplicationController
def index
@current_time = Time.now
@s = Story.find_all_by_name('sitepoint')
end
end
and this view:
<h1>Story#index</h1>
hej
<%= @current_time %>
<%= @s.name%>
<p>Find me in app/views/story/index.html.erb</p>
And, when browsing my 'story' (http://localhost:3000/story), I get
this error:
undefined method `name' for [#<Story id: 2, name: "sitepoint", link:
"http://sitepoint">]:Array
Now using the Rails console within Netbeans, gives me this
No problem with 'name' - so what is the difference ? -
Can you spot a difference between
Story.find_all_by_name('sitepoint')
and
Story.find_by_name('sitepoint') ?
Now think, what you get back from the first query, and what you get
back from the second one.
Then answer yourself, does Array have an 'name' attribute?
I'm new in this game, so this might be a easy question, but I have
done my google, without result, so I will try this....
I'm learning ROR, and I'm using Patrick Lens 'Ruby on Rails' book.
(This is written for ror 1.x - and I'm using NetBeans 6.1 - ror 2.x -
this might be the problem...)
But...
I have made this Controller:
class StoryController < ApplicationController
def index
@current_time = Time.now
@s = Story.find_all_by_name('sitepoint')
end
end
and this view:
<h1>Story#index</h1>
hej
<%= @current_time %>
<%= @s.name%>
<p>Find me in app/views/story/index.html.erb</p>
And, when browsing my 'story' (http://localhost:3000/story), I get
this error:
undefined method `name' for [#<Story id: 2, name: "sitepoint", link:
"http://sitepoint">]:Array
Now using the Rails console within Netbeans, gives me this
No problem with 'name' - so what is the difference ? -
In the first example you are using "find_all_by_name". In the second you are using "find_by_name". The first returns an array. The second returns a Story object.