Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 覆盖模块方法并同时引用它_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 覆盖模块方法并同时引用它

Ruby on rails 覆盖模块方法并同时引用它,ruby-on-rails,ruby,Ruby On Rails,Ruby,我的一个模型中包含了一个模块。在我的用户模型数据库中是特定的 devise :database_authenticatable 模块有一个有效的方法\u密码?(password)我想按如下方式覆盖该方法 def valid_password?(password) if my_condition_is_true do_something_new() else # do what valid_password(password) always does end en

我的一个模型中包含了一个模块。在我的用户模型数据库中是特定的

devise  :database_authenticatable
模块有一个有效的方法\u密码?(password)我想按如下方式覆盖该方法

def valid_password?(password)
  if my_condition_is_true
    do_something_new()
  else
    # do  what valid_password(password) always does
  end
end
在我的else中,我想复制database_authenticable.rb模块中的valid_password()中定义的任何内容,但我想知道是否有一种方法可以让它这样做?就像在继承中我能做的超级


此外,我还没有意识到,在调用我的valid\u password方法后,它调用了module valid\u password方法,您知道如何避免这种情况吗?

您可以将修改作为一个模块写入,并将其包含在内,以便加载方式与加载使用前一个方法的模块的方式类似。如果你能做到这一点,你应该能够正确地调用
super


查看此线程以获得一些想法(当然,这将取决于代码的其余部分的外观):

查看此答案以获得一些想法: