2
在我的模型,我有: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-MI我什么东西?
编辑: 一方面你有这样的查询:
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 2013-04-23 10:54:56
请重新启动您的控制台会话并在此处发布日志。 – Simpleton 2013-04-23 11:04:30
用下面的命令重新加载你的控制台'reload!' – sameera207 2013-04-23 11:48:32