В моей модели у меня есть:Rails ActiveRecord: сфера несогласованность
#models/friend.rb
scope :approved_friend, where(:approved => true)
И Rails консоли выхода:
User.find(2).friends
=> [#<Friend id: 18, user_id: 2, approved: true, created_at: "2013-04-23 09:18:59", updated_at: "2013-04-23 09:18:59", friend_id: 1>]
User.find(2).friends.approved_friend
=> []
Обратите внимание, что утвержден верно в выходе ... Где он получает сумасшедший здесь:
User.find(1).friends.approved_friend
=> [#<Friend id: 19, user_id: 1, approved: true, created_at: "2013-04-23 09:19:36", updated_at: "2013-04-23 09:19:36", friend_id: 2>]
Am-I мили что-то?
EDIT: С одной стороны, у вас есть этот запрос:
SELECT "friends".* FROM "friends" WHERE "friends"."user_id" = 2
=> [#<Friend id: 18, user_id: 2, approved: true, created_at: "2013-04-23 09:18:59", updated_at: "2013-04-23 09:18:59", friend_id: 1>]
С другой стороны, у вас есть этот (запрос через сферу):
SELECT "friends".* FROM "friends" WHERE "friends"."user_id" = 2 AND "friends"."approved" = 't'
=> []
Вы можете проверить соответствующие запросы в журнале. Ваша область применения находится на модели друга, и вы используете ее с пользовательской моделью. – Rubyman
Пожалуйста, перезапустите сеанс консоли и разместите здесь свои журналы. – Simpleton
перезагрузите консоль следующей командой 'reload!' – sameera207