Defect #37165

Can not get anonymous user using User.find

Added by Yuichi HARADA about 1 month ago.

Status:NewStart date:
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:-
Target version:-
Resolution: Affected version:

Description

When I tried to get an anonymous user(id: 6) with User.find, the behavior of User.find is different between 4.2-stable and trunk(r21605).

4.2-stable

% RAILS_ENV=development bundle exec rails console
Loading development environment (Rails 5.2.8)
>> User.find(6)
Creating scope :sorted. Overwriting existing method Group.sorted.
Creating scope :sorted. Overwriting existing method User.sorted.
  User Load (0.5ms)  SELECT  "users".* FROM "users" WHERE "users"."type" IN ('User', 'AnonymousUser') AND "users"."id" = ? LIMIT ?  [["id", 6], ["LIMIT", 1]]
=> #<AnonymousUser id: 6, login: "", hashed_password: "1", firstname: "", lastname: "Anonymous", admin: false, status: 0, last_login_on: nil, language: "", auth_source_id: nil, created_on: "2006-07-19 17:33:19", updated_on: "2006-07-19 17:33:19", type: "AnonymousUser", identity_url: nil, mail_notification: "only_my_events", salt: nil, must_change_passwd: false, passwd_changed_on: nil, twofa_scheme: nil, twofa_totp_key: nil, twofa_totp_last_used_at: nil>
>> exit

trunk

% RAILS_ENV=development bundle exec rails console
Loading development environment (Rails 6.1.6)
[1] pry(main)> User.find(6)
Creating scope :sorted. Overwriting existing method User.sorted.
   (3.5ms)  SELECT sqlite_version(*)
  User Load (0.5ms)  SELECT "users".* FROM "users" WHERE "users"."type" = ? AND "users"."id" = ? LIMIT ?  [["type", "User"], ["id", 6], ["LIMIT", 1]]
ActiveRecord::RecordNotFound: Couldn't find User with 'id'=6
from vendor/bundle/ruby/3.1.0/gems/activerecord-6.1.6/lib/active_record/core.rb:338:in `find'
[2] pry(main)> exit

Also available in: Atom PDF