Hi Community.... 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>> v = Story.find_by_name(''sitepoint'')v = Story.find_by_name(''sitepoint'') => #<Story id: 2, name: "sitepoint", link: "http://sitepoint">>> v.namev.name => "sitepoint" No problem with ''name'' - so what is the difference ? - Regards Jørn --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
> I have made this Controller: > > class StoryController < ApplicationController > def index > @current_time = Time.now > @s = Story.find_all_by_name(''sitepoint'') > end > end<...>> Now using the Rails console within Netbeans, gives me this >>> v = Story.find_by_name(''sitepoint'') > v = Story.find_by_name(''sitepoint'') > => #<Story id: 2, name: "sitepoint", link: "http://sitepoint"> >>> v.name > v.name > => "sitepoint" > > 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? Regards, Rimantas -- http://rimantas.com/ --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On Jul 8, 2008, at 4:03 PM, jborup wrote:> > Hi Community.... > > 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 > >>> v = Story.find_by_name(''sitepoint'') > v = Story.find_by_name(''sitepoint'') > => #<Story id: 2, name: "sitepoint", link: "http://sitepoint"> >>> v.name > v.name > => "sitepoint" > > 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. You can see this in the error:> undefined method `name'' for [#<Story id: 2, name: "sitepoint", link: > "http://sitepoint">]:ArraySo you either need to loop in your view over @s. ie... <% @s.each |story| do %> <%= story.name %> <% end %> Or change your controller to match what you are doing in console. -philip --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Yes.... hmmm.... that is very clear, and removing the all, solved the problem.... guess it is getting a bit late.... Thank you for you comments... I''m back on track..... Regards Jørn. On Jul 9, 1:14 am, Philip Hallstrom <phi...-LSG90OXdqQE@public.gmane.org> wrote:> On Jul 8, 2008, at 4:03 PM, jborup wrote: > > > > > > > Hi Community.... > > > 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 > > >>> v = Story.find_by_name(''sitepoint'') > > v = Story.find_by_name(''sitepoint'') > > => #<Story id: 2, name: "sitepoint", link: "http://sitepoint"> > >>> v.name > > v.name > > => "sitepoint" > > > 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. > > You can see this in the error: > > > undefined method `name'' for [#<Story id: 2, name: "sitepoint", link: > > "http://sitepoint">]:Array > > So you either need to loop in your view over @s. ie... > > <% @s.each |story| do %> > <%= story.name %> > <% end %> > > Or change your controller to match what you are doing in console. > > -philip--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---