Hi Everyone, I am going through a tutorial of Rails, I have created a database, models and controllers. In the example it says when entering the http://localhost:3000/users/1 URL in the browser it should show the first record in the database in the browser. http://ruby.railstutorial.org/chapters/modeling-and-viewing-users-one#sec:model_annotation I get the exception: "Couldn''t find User with id=1" But when i check through the ruby console, User.find(1) returns a proper column. I am on 3.1.3 and the tutorial is on 3.0.11. I was thinking it could be something to do with that. I had asked one question yesterday and it turned out to be a version change problem. -- Posted via http://www.ruby-forum.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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On 29 November 2011 10:30, Somnath Mallick <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> Hi Everyone, > > I am going through a tutorial of Rails, I have created a database, > models and controllers. In the example it says when entering the > > http://localhost:3000/users/1 > > URL in the browser it should show the first record in the database in > the browser. > > http://ruby.railstutorial.org/chapters/modeling-and-viewing-users-one#sec:model_annotation > > I get the exception: > "Couldn''t find User with id=1" > > But when i check through the ruby console, User.find(1) returns a proper > column.Can you copy and paste the relevant bit from log/development.log when you click the link and also the console output from User.find(1). Use Copy/paste the console output also, including the command you entered, do not retype it here. Colin -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@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.
Started GET "/users/1" for 127.0.0.1 at 2011-11-29 17:19:31 +0530 Processing by UsersController#show as HTML Parameters: {"id"=>"1"} User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", "1"]] Completed 404 Not Found in 15ms ActiveRecord::RecordNotFound (Couldn''t find User with id=1): app/controllers/users_controller.rb:4:in `show'' Rendered C:/Ruby193/gems/actionpack-3.1.3/lib/action_dispatch/middleware/templates/rescues/_trace.erb (0.0ms) Rendered C:/Ruby193/gems/actionpack-3.1.3/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (30.0ms) Rendered C:/Ruby193/gems/actionpack-3.1.3/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (45.1m) Now the strange thing is when i enter the find command i get an exception! Previously it was working fine. irb(main):002:0> User.new => #<User id: nil, name: nil, email: nil, created_at: nil, updated_at: nil> irb(main):003:0> user = User.new(:name => "Michael Hartl", :email => "mhartl-hcDgGtZH8xNBDgjK7y7TUQ@public.gmane.org") => #<User id: nil, name: "Michael Hartl", email: "mhartl-hcDgGtZH8xNBDgjK7y7TUQ@public.gmane.org", created_at: nil, updated_at: nil> irb(main):006:0> user.save ←[1m←[35m (0.0ms)←[0m SAVEPOINT active_record_1 ←[1m←[36m (0.0ms)←[0m ←[1mSELECT 1 FROM "users" WHERE LOWER("users"."email") = LOWER(''mhartl-hcDgGtZH8xNBDgjK7y7TUQ@public.gmane.org'') LIMIT 1←[0m ←[1m←[35mSQL (0.0ms)←[0m INSERT INTO "users" ("created_at", "email", "name", "updated_at") VALUES (?, ?, ?, ?) [["created_at", Tue, 29 Nov 2011 11:53:29 UTC +00:00], ["email", "mhartl-hcDgGtZH8xNBDgjK7y7TUQ@public.gmane.org" ], ["name", "Michael Hartl"], ["updated_at", Tue, 29 Nov 2011 11:53:29 UTC +00:00]] ←[1m←[36m (0.0ms)←[0m ←[1mRELEASE SAVEPOINT active_record_1←[0m => true irb(main):012:0> user.find(1) NoMethodError: undefined method `find'' for #<User:0x1d401b0> from C:/Ruby193/gems/activemodel-3.1.3/lib/active_model/attribute_methods.rb:385:in `method_missing'' from C:/Ruby193/gems/activerecord-3.1.3/lib/active_record/attribute_methods.rb:60:in `method_missing'' from (irb):12 from C:/Ruby193/gems/railties-3.1.3/lib/rails/commands/console.rb:45:in `start'' from C:/Ruby193/gems/railties-3.1.3/lib/rails/commands/console.rb:8:in `start'' from C:/Ruby193/gems/railties-3.1.3/lib/rails/commands.rb:40:in `<top (required)>'' from script/rails:6:in `require'' from script/rails:6:in `<main>'' Why doesn''t this site have something like code tags or something?!!! :) -- Posted via http://www.ruby-forum.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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@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.
On 29 November 2011 12:04, Somnath Mallick <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> Started GET "/users/1" for 127.0.0.1 at 2011-11-29 17:19:31 +0530 > Processing by UsersController#show as HTML > Parameters: {"id"=>"1"} > User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" > ? LIMIT 1 [["id", "1"]] > Completed 404 Not Found in 15ms > > ActiveRecord::RecordNotFound (Couldn''t find User with id=1): > app/controllers/users_controller.rb:4:in `show''Can you show us the code for users_controller show method.> > Rendered > C:/Ruby193/gems/actionpack-3.1.3/lib/action_dispatch/middleware/templates/rescues/_trace.erb > (0.0ms) > Rendered > C:/Ruby193/gems/actionpack-3.1.3/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb > (30.0ms) > Rendered > C:/Ruby193/gems/actionpack-3.1.3/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb > within rescues/layout (45.1m) > > Now the strange thing is when i enter the find command i get an > exception! Previously it was working fine. > > ... > > irb(main):012:0> user.find(1)That should be User.find, you are calling find on the user object you just created, instead of on the User class. Colin -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@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.
On Nov 29, 9:04 am, Somnath Mallick <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> > irb(main):012:0> user.find(1) > NoMethodError: undefined method `find'' for #<User:0x1d401b0> > fromYou should "find" the class, not the instance: User.find(1)> > Why doesn''t this site have something like code tags or something?!!! :) >You''re posting from ruby-forum, a forum-like bridge to Ruby on Rails mailing list -- is not a forum. -- Luis Lavena -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@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.
On 29 November 2011 12:04, Somnath Mallick <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> irb(main):003:0> user = User.new(:name => "Michael Hartl", :email => > "mhartl-hcDgGtZH8xNBDgjK7y7TUQ@public.gmane.org") > => #<User id: nil, name: "Michael Hartl", email: "mhartl-hcDgGtZH8xNBDgjK7y7TUQ@public.gmane.org", > created_at: nil, updated_at: nil> > > irb(main):006:0> user.save > > irb(main):012:0> user.find(1) > NoMethodError: undefined method `find'' for #<User:0x1d401b0>User.find(1) Note the case sensitivity - you were calling a method "find" on an instance of the User model, not the User class method "find".> Why doesn''t this site have something like code tags or something?!!! :)This "site" is a mailing list... -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On 29 November 2011 12:18, Colin Law <clanlaw-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> wrote:> On 29 November 2011 12:04, Somnath Mallick <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote: >> ActiveRecord::RecordNotFound (Couldn''t find User with id=1): >> app/controllers/users_controller.rb:4:in `show'' > > Can you show us the code for users_controller show method.Also, can you provide the output to calling the following in a console: User.first (I have an inkling that your first record doesn''t have an id of "1") -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@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.
$ rails console --sandbox Loading development environment in sandbox (Rails 3.1.3) Any modifications you make will be rolled back on exit irb(main):001:0> User.new => #<User id: nil, name: nil, email: nil, created_at: nil, updated_at: nil> irb(main):002:0> User.first ←[1m←[36mUser Load (0.0ms)←[0m ←[1mSELECT "users".* FROM "users" LIMIT 1←[0m => nil irb(main):003:0> user = User.new(:name => "Michael Hartl", :email => "mhartl-hcDgGtZH8xNBDgjK7y7TUQ@public.gmane.org") => #<User id: nil, name: "Michael Hartl", email: "mhartl-hcDgGtZH8xNBDgjK7y7TUQ@public.gmane.org", created_at: nil, updated_at: nil> irb(main):004:0> user.save ←[1m←[35m (0.0ms)←[0m SAVEPOINT active_record_1 ←[1m←[36m (0.0ms)←[0m ←[1mSELECT 1 FROM "users" WHERE LOWER("users"."email") = LOWER(''mhartl-hcDgGtZH8xNBDgjK7y7TUQ@public.gmane.org'') LIMIT 1←[0m ←[1m←[35mSQL (15.5ms)←[0m INSERT INTO "users" ("created_at", "email", "name", "updated_at") VALUES (?, ?, ?, ?) [["created_at", Tue, 29 Nov 2011 12:28:21 UTC +00:00], ["email", "mhartl-hcDgGtZH8xNBDgjK7y7TUQ@public.gmane.org "], ["name", "Michael Hartl"], ["updated_at", Tue, 29 Nov 2011 12:28:21 UTC +00:00]] ←[1m←[36m (0.0ms)←[0m ←[1mRELEASE SAVEPOINT active_record_1←[0m => true irb(main):005:0> User.first ←[1m←[35mUser Load (0.0ms)←[0m SELECT "users".* FROM "users" LIMIT 1 => #<User id: 1, name: "Michael Hartl", email: "mhartl-hcDgGtZH8xNBDgjK7y7TUQ@public.gmane.org", created_at: "2011-11-29 12:28:21", updated_at: "2011-11-29 12:28:21"> users_controller.rb: class UsersController < ApplicationController def show @user = User.find(params[:id]) end def new @title = "Sign Up" end end -- Posted via http://www.ruby-forum.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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@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.
On 29 November 2011 12:30, Somnath Mallick <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> $ rails console --sandboxermm.... "sandbox"? ;-) -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On 29 November 2011 12:30, Somnath Mallick <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> $ rails console --sandbox > Loading development environment in sandbox (Rails 3.1.3) > Any modifications you make will be rolled back on exit > irb(main):001:0> User.new > => #<User id: nil, name: nil, email: nil, created_at: nil, updated_at: > nil> > irb(main):002:0> User.first > ←[1m←[36mUser Load (0.0ms)←[0m ←[1mSELECT "users".* FROM "users" > LIMIT 1←[0m > => nil > irb(main):003:0> user = User.new(:name => "Michael Hartl", :email => > "mhartl-hcDgGtZH8xNBDgjK7y7TUQ@public.gmane.org") > => #<User id: nil, name: "Michael Hartl", email: "mhartl-hcDgGtZH8xNBDgjK7y7TUQ@public.gmane.org", > created_at: nil, updated_at: nil> > irb(main):004:0> user.save > ←[1m←[35m (0.0ms)←[0m SAVEPOINT active_record_1 > ←[1m←[36m (0.0ms)←[0m ←[1mSELECT 1 FROM "users" WHERE > LOWER("users"."email") = LOWER(''mhartl-hcDgGtZH8xNBDgjK7y7TUQ@public.gmane.org'') LIMIT 1←[0m > ←[1m←[35mSQL (15.5ms)←[0m INSERT INTO "users" ("created_at", "email", > "name", "updated_at") VALUES (?, ?, ?, ?) [["created_at", Tue, 29 Nov > 2011 12:28:21 UTC +00:00], ["email", "mhartl-hcDgGtZH8xNBDgjK7y7TUQ@public.gmane.org > "], ["name", "Michael Hartl"], ["updated_at", Tue, 29 Nov 2011 12:28:21 > UTC +00:00]] > ←[1m←[36m (0.0ms)←[0m ←[1mRELEASE SAVEPOINT active_record_1←[0m > => true > irb(main):005:0> User.first > ←[1m←[35mUser Load (0.0ms)←[0m SELECT "users".* FROM "users" LIMIT 1 > => #<User id: 1, name: "Michael Hartl", email: "mhartl-hcDgGtZH8xNBDgjK7y7TUQ@public.gmane.org", > created_at: "2011-11-29 12:28:21", updated_at: "2011-11-29 12:28:21">By running it in a sandbox the code above is creating the user with id 1, but it gets removed when you close the console, so when the app runs there are no users. To check this just run rails console User.find(1) Colin -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@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.
OK.. I will give it a try! I think i have to redo all the commands and add data all over again! Currently i get: $ rails console Loading development environment (Rails 3.1.3) irb(main):001:0> User.find(1) ←[1m←[36mUser Load (31.2ms)←[0m ←[1mSELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1←[0m [["id", 1]] ActiveRecord::RecordNotFound: Couldn''t find User with id=1 But how come coming out of the sandbox console deletes data from the database? Database values should be persistent right? That is the whole idea of a DB, or am i missing something here? -- Posted via http://www.ruby-forum.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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@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.
On 29 November 2011 12:47, Somnath Mallick <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> But how come coming out of the sandbox console deletes data from the > database? Database values should be persistent right? That is the whole > idea of a DB, or am i missing something here?Yes - you''re missing the point that a "sandbox" is there precisely to revert the data you''ve been fiddling with back to what it was at the start. If you want to persist your changes, don''t use the sandbox. If you want to fiddle and do no damage, use the sandbox :-) -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On 29 November 2011 12:47, Somnath Mallick <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> OK.. I will give it a try! > > I think i have to redo all the commands and add data all over again!If you have a lot of data to load manually you can do it by putting code in db/seeds.rb then running rake db:seed> ... > But how come coming out of the sandbox console deletes data from the > database? Database values should be persistent right? That is the whole > idea of a DB, or am i missing something here?Did you not see the comment displayed when you opened the console in a sandbox? $ rails console --sandbox Loading development environment in sandbox (Rails 3.1.3) Any modifications you make will be rolled back on exit That is the whole point of the sandbox, to play without affecting the database. Colin> > -- > Posted via http://www.ruby-forum.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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en. >-- gplus.to/clanlaw -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
I got it working now! Thanks guys! Will be back tomorrow with some other problem! :) -- Posted via http://www.ruby-forum.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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.