2013-12-21 2 views
1

저는이 튜토리얼을 가지고 일하고 있습니다 : http://ruby.railstutorial.org/chapters/a-demo-app#top 모든 단계를 정확히 따라 했으므로 모든 관련 코드가 표시됩니다.첫 번째 사용자에게는 좋지만 세 번째 사용자에게는 오류가 있습니까?

첫 번째 사용자는 애플리케이션을 작동 시켰습니다. 즉, 내가 만든 응용 프로그램에 3 명의 사용자를 추가했으며 세 번째 사용자에게는 작동하지 않습니다. 그 오류 메시지가 발생하기 위해서 내가 뭘 잘못했는지 궁금 하네. 다음은 내가 한 일입니다.

Loading development environment (Rails 4.0.2) 
2.0.0-p353 :001 > first_user = User.first 
User Load (0.1ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1 
=> #<User id: 1, first: "John", last: "Palfrey", email: "[email protected]", status: "Confused as to why he's on Claire's application.", created_at: "2013-12-21 18:53:17", updated_at: "2013-12-21 18:53:17"> 
2.0.0-p353 :002 > first_user.microposts 
Micropost Load (1.2ms) SELECT "microposts".* FROM "microposts" WHERE "microposts"."user_id" = ? [["user_id", 1]] 
=> #<ActiveRecord::Associations::CollectionProxy [#<Micropost id: 1, content: "This is rather odd.", user_id: 1, created_at: "2013-12-21 18:56:58", updated_at: "2013-12-21 18:56:58">, #<Micropost id: 3, content: "I hope Claire can figure this out, for the sake of ...", user_id: 1, created_at: "2013-12-21 18:57:32", updated_at: "2013-12-21 18:57:32">]> 
2.0.0-p353 :003 > third_user = User.third 
NoMethodError: undefined method `third' for #<Class:0x007fac91453928> 
from /Users/Brawain/.rvm/gems/ruby-2.0.0-p353/gems/activerecord-4.0.2/lib/active_record/dynamic_matchers.rb:22:in `method_missing' 
from (irb):3 
from /Users/Brawain/.rvm/gems/ruby-2.0.0-p353/gems/railties-4.0.2/lib/rails/commands/console.rb:90:in `start' 
from /Users/Brawain/.rvm/gems/ruby-2.0.0-p353/gems/railties-4.0.2/lib/rails/commands/console.rb:9:in `start' 
from /Users/Brawain/.rvm/gems/ruby-2.0.0-p353/gems/railties-4.0.2/lib/rails/commands.rb:62:in `<top (required)>' 
from bin/rails:4:in `require' 
from bin/rails:4:in `<main>' 

왜 이런 일이 발생했는지 생각해보십시오. 내 보석 파일, 내 모델 등을보고 싶다면 위에 제공된 링크를 확인하십시오! 사전에

감사합니다, ~ 제이니

답변

1

은, 당신이 사용할 수있는 User.third 같은 그런 방법이 없습니다 : (3) 세 번째 사용자의 ID입니다 User.find(3).

세 번째 사용자의 ID가 3임을 확실하지 않은 경우, 당신은 할 수 있습니다 :

User.take(3).last 
+0

는 정말 고마워요! 내 코드를 잘못 쓰지 않았기 때문에 기쁩니다. 그냥 잘못 테스트. – user2253215

관련 문제