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@googlegroups.com.
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.

Search Discussions

  • Colin Law at Nov 29, 2011 at 10:42 am

    On 29 November 2011 10:30, Somnath Mallick 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@googlegroups.com.
    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.
  • Somnath Mallick at Nov 29, 2011 at 12:04 pm
    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@example.com")
    => #<User id: nil, name: "Michael Hartl", email: "mhartl@example.com",
    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@example.com') 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@example.com"
    ], ["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@googlegroups.com.
    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.
  • Luis Lavena at Nov 29, 2011 at 12:18 pm

    On Nov 29, 9:04 am, Somnath Mallick wrote:
    irb(main):012:0> user.find(1)
    NoMethodError: undefined method `find' for #<User:0x1d401b0>
    from
    You 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@googlegroups.com.
    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.
  • Colin Law at Nov 29, 2011 at 12:18 pm

    On 29 November 2011 12:04, Somnath Mallick 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@googlegroups.com.
    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.
  • Michael Pavling at Nov 29, 2011 at 12:21 pm

    On 29 November 2011 12:18, Colin Law wrote:
    On 29 November 2011 12:04, Somnath Mallick 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@googlegroups.com.
    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.
  • Michael Pavling at Nov 29, 2011 at 12:19 pm

    On 29 November 2011 12:04, Somnath Mallick wrote:
    irb(main):003:0> user = User.new(:name => "Michael Hartl", :email =>
    "mhartl@example.com")
    => #<User id: nil, name: "Michael Hartl", email: "mhartl@example.com",
    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@googlegroups.com.
    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.
  • Somnath Mallick at Nov 29, 2011 at 12:30 pm
    $ 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@example.com")
    => #<User id: nil, name: "Michael Hartl", email: "mhartl@example.com",
    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@example.com') 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@example.com
    "], ["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@example.com",
    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@googlegroups.com.
    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.
  • Michael Pavling at Nov 29, 2011 at 12:33 pm

    On 29 November 2011 12:30, Somnath Mallick wrote:
    $ rails console --sandbox
    ermm.... "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@googlegroups.com.
    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.
  • Colin Law at Nov 29, 2011 at 12:36 pm

    On 29 November 2011 12:30, Somnath Mallick 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@example.com")
    => #<User id: nil, name: "Michael Hartl", email: "mhartl@example.com",
    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@example.com') 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@example.com
    "], ["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@example.com",
    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@googlegroups.com.
    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.
  • Somnath Mallick at Nov 29, 2011 at 12:48 pm
    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@googlegroups.com.
    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.
  • Michael Pavling at Nov 29, 2011 at 12:52 pm

    On 29 November 2011 12:47, Somnath Mallick 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@googlegroups.com.
    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.
  • Colin Law at Nov 29, 2011 at 1:31 pm

    On 29 November 2011 12:47, Somnath Mallick 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@googlegroups.com.
    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.


    --
    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@googlegroups.com.
    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.
  • Somnath Mallick at Nov 29, 2011 at 2:54 pm
    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@googlegroups.com.
    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.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouprubyonrails-talk @
categoriesrubyonrails
postedNov 29, '11 at 10:30a
activeNov 29, '11 at 2:54p
posts14
users4
websiterubyonrails.org
irc#RubyOnRails

People

Translate

site design / logo © 2022 Grokbase