【问题标题】:How to call a method of a controller in a method of another controller如何在另一个控制器的方法中调用一个控制器的方法
【发布时间】:2018-11-05 05:47:16
【问题描述】:

我想在另一个控制器的方法中调用一个控制器的方法,并传递如下参数:

控制器 A:

@var
def methodA
  update(@var)
end

控制器 B:

def update(var)
  var1 = var
end

有什么办法吗?

【问题讨论】:

  • 由于update是一个实例方法,你应该有一个B的实例,你想在其上调用update。你应该明确地调用它的方法。但是您没有在问题中提出该实例。

标签: ruby-on-rails controller action


【解决方案1】:

为什么不在ApplicationController 中定义共享方法,并在两个控制器中调用它,因为它们都继承了它的方法。像这样:

应用控制器:

class ApplicationController < ActionController::Base

  protected

  def update(var)
    var1 = var
  end
end

其他控制器:

class SomeController < ApplicationController    
  def some_method()
    @var = 'something'
    update(@var)
  end
end


class SomeOtherController < ApplicationController    
   def some_method()
     @var = 'something'
     update(@var)
   end
 end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    • 2019-10-17
    • 1970-01-01
    相关资源
    最近更新 更多