如何使用Ruby on Rails中的自定义函数替换默认函数内容

时间:2013-08-16 08:53:46

标签: ruby-on-rails ruby-on-rails-3

最近,我尝试使用Rails自定义模板在我新建应用时构建自定义模板。 例如:我用以下代码替换默认密码lenghth

   gsub_file 'config/initializers/devise.rb', /config.password_length = 8..128/ do
       <<-RUBY
           config.password_length = 1..128
       RUBY
   end

然而,如果我想替换

def confirm
    @message = "AAA"

end  

def confirm(email)
    @message = "Thank you for confirmation!"
    mail(:to => email, :subject => "Registered")  
end  
我怎么能这样做,可以给我一些指导, 非常感谢你〜

2 个答案:

答案 0 :(得分:0)

尝试这样的事情:

def confirm(email)
  @message = "AAA"
  mail(:to => email, :subject => "Registered")  
end

答案 1 :(得分:0)

在Ruby中,您可以在任何地方重新定义类。您可以在控制台中测试它

1.9.3-p125 :001 > "a".inspect
 => "\"a\"" 
1.9.3-p125 :002 > class String
1.9.3-p125 :003?>   def inspect(n)
1.9.3-p125 :004?>     puts "hey#{n}"
1.9.3-p125 :005?>     end
1.9.3-p125 :006?>   end
 => nil
1.9.3-p125 :008 > "a".inspect(1)
hey1
 => nil

在上面的示例中,您在String中重新定义了inspect方法。