Я работаю с этим руководством: http://ruby.railstutorial.org/chapters / a-demo-app # наверх Я точно выполнил все шаги, чтобы показать вам весь мой соответствующий код.

У меня приложение заработало, для первого пользователя. Тем не менее, я добавил трех пользователей в созданное мной приложение, и оно не будет работать для третьего пользователя. Мне интересно, что я сделал не так, чтобы появилось это сообщение об ошибке. Вот что я сделал:

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: "jpalfrey@andover.edu", 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
user2253215 22 Дек 2013 в 03:35

2 ответа

Лучший ответ

Нет такого метода, как User.third, вы можете использовать: User.find(3), где 3 - это идентификатор третьего пользователя.

Если вы не уверены, что идентификатор третьего пользователя равен 3, вы можете сделать:

User.take(3).last
1
Stoic 21 Дек 2013 в 23:44

Нет такого метода, как .third, только .first и .last. Вы захотите попробовать User.find(3), который ищет пользователей по их идентификаторам.

Вы найдете это полезным - http://guides.rubyonrails.org/active_record_querying.html

4
Dudo 21 Дек 2013 в 23:41