Ruby on rails Rails:activerecord结果之间的差异

Ruby on rails Rails:activerecord结果之间的差异,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,为什么在使用u=User时会出现结果错误。其中:User=>andrata用于获取u.User 这就是成功的结果: 使用u=User.find1 使用u=User.find_by_userandrata 这是结果错误: 使用u=User。其中:User=>andrata 谢谢.find and.find_by_xxx为您提供一个用户实例,where将返回非用户实例的ActiveRecord关系。如果要从何处获取用户实例,可以通过以下方式获取结果: User.where(:user =>"a

为什么在使用u=User时会出现结果错误。其中:User=>andrata用于获取u.User

这就是成功的结果:

使用u=User.find1

使用u=User.find_by_userandrata

这是结果错误:

使用u=User。其中:User=>andrata

谢谢

.find and.find_by_xxx为您提供一个用户实例,where将返回非用户实例的ActiveRecord关系。如果要从何处获取用户实例,可以通过以下方式获取结果:

User.where(:user =>"andrata").first
irb(main):079:0> u = User.find_by_user("andrata")
  User Load (2.0ms)  SELECT  `users`.* FROM `users` WHERE `users`.`user` = 'andr
ata' LIMIT 1
=> #<User id: 1, user: "andrata", name: "andrata lack", password_digest: "$2a$10
$yCZVO7Sxcz4yErBmLozAPOYupg0BAG9wxBjWF6eGPOj...", created_at: "2015-08-28 13:52:
28", updated_at: "2015-08-28 14:37:35">
irb(main):080:0> u.user
=> "andrata"
irb(main):077:0> u = User.where(:user =>"andrata")
  User Load (1.0ms)  SELECT `users`.* FROM `users` WHERE `users`.`user` = 'andra
ta'
=> #<ActiveRecord::Relation [#<User id: 1, user: "andrata", name: "andrata lack"
, password_digest: "$2a$10$yCZVO7Sxcz4yErBmLozAPOYupg0BAG9wxBjWF6eGPOj...", crea
ted_at: "2015-08-28 13:52:28", updated_at: "2015-08-28 14:37:35">]>
irb(main):078:0> u.user #####<-- why i get result error for this #######
NoMethodError: undefined method `user' for #<User::ActiveRecord_Relation:0x5de82
78>
        from C:/Ruby200/lib/ruby/gems/2.0.0/gems/activerecord-4.2.3/lib/active_r
ecord/relation/delegation.rb:136:in `method_missing'
        from C:/Ruby200/lib/ruby/gems/2.0.0/gems/activerecord-4.2.3/lib/active_r
ecord/relation/delegation.rb:99:in `method_missing'
        from (irb):78
        from C:/Ruby200/lib/ruby/gems/2.0.0/gems/railties-4.2.3/lib/rails/comman
ds/console.rb:110:in `start'
        from C:/Ruby200/lib/ruby/gems/2.0.0/gems/railties-4.2.3/lib/rails/comman
ds/console.rb:9:in `start'
        from C:/Ruby200/lib/ruby/gems/2.0.0/gems/railties-4.2.3/lib/rails/comman
ds/commands_tasks.rb:68:in `console'
        from C:/Ruby200/lib/ruby/gems/2.0.0/gems/railties-4.2.3/lib/rails/comman
ds/commands_tasks.rb:39:in `run_command!'
        from C:/Ruby200/lib/ruby/gems/2.0.0/gems/railties-4.2.3/lib/rails/comman
ds.rb:17:in `<top (required)>'
        from bin/rails:4:in `require'
        from bin/rails:4:in `<main>'
User.where(:user =>"andrata").first