diff --git a/activemodel/lib/active_model/attribute_methods.rb b/activemodel/lib/active_model/attribute_methods.rb index 1a4e0b8e59..6763911ae4 100644 --- a/activemodel/lib/active_model/attribute_methods.rb +++ b/activemodel/lib/active_model/attribute_methods.rb @@ -361,12 +361,12 @@ module ActiveModel # and `send` if the given names cannot be compiled. def define_proxy_call(include_private, mod, name, target, *extra) defn = if NAME_COMPILABLE_REGEXP.match?(name) - "def #{name}(*args)" + "def #{name}(*args, **options)" else - "define_method(:'#{name}') do |*args|" + "define_method(:'#{name}') do |*args, **options|" end - extra = (extra.map!(&:inspect) << "*args").join(", ") + extra = (extra.map!(&:inspect) << "*args, **options").join(", ") body = if CALL_COMPILABLE_REGEXP.match?(target) "#{"self." unless include_private}#{target}(#{extra})"