Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion gems/activerecord/6.0/activerecord.rbs
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,11 @@ module ActiveRecord
extend ::ActiveRecord::Validations::ClassMethods
extend ::ActiveSupport::Callbacks::ClassMethods

type belongs_to_default[T] = ^(T) [self: T] -> ::ActiveRecord::Base?

@felixefelip felixefelip Jun 24, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the Active Record 6, I couldn't find a test setup, so I didn't add a test to this change. But if it's necessary, I'd be happy to add tests for this version as well.


def self.abstract_class=: (bool) -> void
def self.scope: (Symbol, Proc) ?{ () -> untyped } -> void
def self.belongs_to: (Symbol, ?untyped, **untyped) -> void
def self.belongs_to: (Symbol, ?untyped, **untyped, ?default: belongs_to_default[instance]) -> void
def self.has_many: (Symbol, ?untyped, **untyped) -> void
def self.has_one: (Symbol, ?untyped, **untyped) -> void
def self.has_and_belongs_to_many: (untyped name, ?untyped? scope, **untyped options) ?{ () -> untyped } -> untyped
Expand Down
5 changes: 5 additions & 0 deletions gems/activerecord/7.2/_test/activerecord-7.2.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,11 @@ class User < ApplicationRecord
end

class Article < ApplicationRecord
belongs_to :user, default: -> { default_user }

def default_user
User.first
end
end

User.where.missing.to_sql
Expand Down
2 changes: 2 additions & 0 deletions gems/activerecord/7.2/_test/activerecord-7.2.rbs
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,7 @@ module Test
class ActiveRecord_Associations_CollectionProxy < ::ActiveRecord::Associations::CollectionProxy
include ::ActiveRecord::Relation::Methods[Article, Integer]
end

def default_user: () -> User?
end
end
4 changes: 3 additions & 1 deletion gems/activerecord/7.2/activerecord.rbs
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,11 @@ module ActiveRecord
extend ::ActiveRecord::Validations::ClassMethods
extend ::ActiveSupport::Callbacks::ClassMethods

type belongs_to_default[T] = ^(T) [self: T] -> ::ActiveRecord::Base?

def self.abstract_class=: (bool) -> void
def self.scope: (Symbol, Proc) ?{ () -> untyped } -> void
def self.belongs_to: (Symbol, ?untyped, **untyped) -> void
def self.belongs_to: (Symbol, ?untyped, **untyped, ?default: belongs_to_default[instance]) -> void
def self.has_many: (Symbol, ?untyped, **untyped) -> void
def self.has_one: (Symbol, ?untyped, **untyped) -> void
def self.has_and_belongs_to_many: (untyped name, ?untyped? scope, **untyped options) ?{ () -> untyped } -> untyped
Expand Down
5 changes: 5 additions & 0 deletions gems/activerecord/8.0/_test/activerecord-8.0.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,11 @@ class User < ApplicationRecord
end

class Article < ApplicationRecord
belongs_to :user, default: -> { default_user }

def default_user
User.first
end
end

User.where.missing.to_sql
Expand Down
2 changes: 2 additions & 0 deletions gems/activerecord/8.0/_test/activerecord-8.0.rbs
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,7 @@ module Test
class ActiveRecord_Associations_CollectionProxy < ::ActiveRecord::Associations::CollectionProxy
include ::ActiveRecord::Relation::Methods[Article, Integer]
end

def default_user: () -> User?
end
end
4 changes: 3 additions & 1 deletion gems/activerecord/8.0/activerecord.rbs
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,11 @@ module ActiveRecord
extend ::ActiveRecord::Validations::ClassMethods
extend ::ActiveSupport::Callbacks::ClassMethods

type belongs_to_default[T] = ^(T) [self: T] -> ::ActiveRecord::Base?

def self.abstract_class=: (bool) -> void
def self.scope: (Symbol, Proc) ?{ () -> untyped } -> void
def self.belongs_to: (Symbol, ?untyped, **untyped) -> void
def self.belongs_to: (Symbol, ?untyped, **untyped, ?default: belongs_to_default[instance]) -> void
def self.has_many: (Symbol, ?untyped, **untyped) -> void
def self.has_one: (Symbol, ?untyped, **untyped) -> void
def self.has_and_belongs_to_many: (untyped name, ?untyped? scope, **untyped options) ?{ () -> untyped } -> untyped
Expand Down
Loading