如何将参数传递给ruby中的别名方法

sam*_*207 4 ruby methods alias

我想在ruby中创建一个别名方法并将参数传递给它.我设法做了以下事情

class User
  def say_name
    puts "I'm sameera"
  end
end

class User
  alias :tell_name :say_name
  def say_name
    puts "I'm sameera gayan"
    tell_name
  end
end

user = User.new
user.say_name
Run Code Online (Sandbox Code Playgroud)

它给了我出局

我是同一个gayan我是同一个人

但现在我想将我的名字作为参数传递给第一个'say_name'方法.所以新代码就像

class User
  def say_name(name)
    puts "#{name}"
  end
end

class User
  alias :tell_name :say_name(name)
  def say_name(name)
    puts "I'm sameera gayan"
    tell_name(name)
  end
end

user = User.new
user.say_name("my new name")
Run Code Online (Sandbox Code Playgroud)

但现在这不起作用(将参数传递给别名方法).所以我的问题是如何将参数传递给别名方法.

我希望你能清楚这个问题.提前致谢

干杯

sameera

Roh*_*hit 5

我尝试了这个,并找到了这个解决方案

class User

        def say_name(name)

              puts "#{name}"

        end

end

class User

        alias :tell_name :say_name

        def say_name(name)

              puts "Hi"

              tell_name(name)

        end

end

user = User.new

user.say_name("Rohit")
Run Code Online (Sandbox Code Playgroud)

之所以这样,是因为我们无法将参数传递给别名.这就是你想要做的.