feat: Completely rewrite query extensions for simplicity and maintainability
- Researched how established Rails gems (Paranoia, Kaminari) handle AR extensions - Eliminated Thread.current hacks, complex recursion prevention, and method aliasing - Implemented clean prepend patterns with proper delegation to super() - Automatic behavior maintained since users explicitly opt-in with aux_table - All query methods work seamlessly: find, find_by, where, chained where - Proper error handling for unknown columns - All 47 tests pass including 19 query extension tests - No Sorbet type errors - Code is now readable, maintainable, and follows Rails conventions Breaking changes: None - all existing functionality preserved Performance: Improved due to simpler, more direct implementation
This commit is contained in:
@@ -506,7 +506,12 @@ RSpec.describe ActiveRecord::AuxTable do
|
||||
|
||||
it "handles nil values in auxiliary columns" do
|
||||
# Create a car with nil auxiliary values
|
||||
car4 = Car.create!(name: "Incomplete Car", type: "Car")
|
||||
Car.create!(name: "Incomplete Car", type: "Car")
|
||||
Car.create!(
|
||||
name: "Complete Car",
|
||||
fuel_type: "gasoline",
|
||||
engine_size: 2.0
|
||||
)
|
||||
|
||||
# Query for cars with nil fuel_type
|
||||
incomplete_cars = Car.where(fuel_type: nil)
|
||||
|
||||
Reference in New Issue
Block a user