Greetings.
I’ve got very strange behavior of alias_method_chains, and I hope
someone will advise me.
I have a rails 2.2.2 app created with
#rails aliasApp
, a class XYZ residing in app/helpers/xyz.rb:
class XYZ
attr_accessor :name
attr_accessor :value
def initialize (a, b)
puts “in XYZ constructor”
self.name = a
self.value = b
end
def a
puts self.name
end
def b
puts self.value
end
end
, and an extended class XYZ in app/views/xyz_ext.rb
class XYZ
def initialize_with_extension a,b
puts "before chain"
initialize_without_extension a,b
puts "after chain"
end
alias_method_chain :initialize, :extension
end
So basically what I expect to have three lines in the console when
creating XYZ:
- before chain
- in Alias constructor
- after chain
BUT I get something really different!
silencio:alias u2$ script/console
Loading development environment (Rails 2.2.2)
require ‘app/views/xyz_ext.rb’
=> [“XYZ”]XYZ.new 1,3
before chain
ArgumentError: wrong number of arguments (2 for 0)
from ./app/views/xyz_ext.rb:4:ininitialize_without_extension' from ./app/views/xyz_ext.rb:4:in
initialize’
from (irb):3:in `new’
from (irb):3
Any ideas on this error would be very appreciated!
Alex