Ruby on rails 控制器中的Rails部分

Ruby on rails 控制器中的Rails部分,ruby-on-rails,partials,Ruby On Rails,Partials,我有一个代码,它几乎在我的三个控制器中重复,我想知道: 有没有办法在控制器内渲染部分?我要澄清一下,我想编写相同的ruby代码,并在每个控制器中呈现它。有人知道怎么做吗?谢谢有两种解决方案,模块和玩继承 模块 使用自定义代码定义模块并将其包含在控制器中 module MyCustomModule def method_1 #code ... end def method_2 #code ... end def method_2 #code ...

我有一个代码,它几乎在我的三个控制器中重复,我想知道:
有没有办法在控制器内渲染部分?我要澄清一下,我想编写相同的ruby代码,并在每个控制器中呈现它。有人知道怎么做吗?谢谢

有两种解决方案,模块和玩继承

模块 使用自定义代码定义模块并将其包含在控制器中

module MyCustomModule
  def method_1
    #code ...
  end

 def method_2
    #code ...
  end


  def method_2
    #code ...
  end
end
然后在控制器中:

class MyController < AplicationController
  include MyCustomModule
end
class MyController
遗产 如果您不介意所有控制器都使用这些方法,只需在应用程序控制器中定义它们即可

class ApplicationController < ActionController::Base
  # ...

  def method_1
    #code
  end

  # And so on ...
end
class ApplicationController
有两种解决方案,模块和玩继承

模块 使用自定义代码定义模块并将其包含在控制器中

module MyCustomModule
  def method_1
    #code ...
  end

 def method_2
    #code ...
  end


  def method_2
    #code ...
  end
end
然后在控制器中:

class MyController < AplicationController
  include MyCustomModule
end
class MyController
遗产 如果您不介意所有控制器都使用这些方法,只需在应用程序控制器中定义它们即可

class ApplicationController < ActionController::Base
  # ...

  def method_1
    #code
  end

  # And so on ...
end
class ApplicationController
我被你的问题弄糊涂了;我看不出这和偏音有什么关系。然而,如果我理解正确的话,你所拥有的是这样的

class FooController < ApplicationController
  def my_method
  end
end

class BarController < ApplicationController
  def my_method
  end
end

class BazController < ApplicationController
  def my_method
  end
end
class FooController

您希望通过将
my_方法
方法抽象到一个地方来消除它。解决方案是在ApplicationController上定义它,其他三个控制器都继承自它。

我被你的问题弄糊涂了;我看不出这和偏音有什么关系。然而,如果我理解正确的话,你所拥有的是这样的

class FooController < ApplicationController
  def my_method
  end
end

class BarController < ApplicationController
  def my_method
  end
end

class BazController < ApplicationController
  def my_method
  end
end
class FooController

您希望通过将
my_方法
方法抽象到一个地方来消除它。解决方案是在
ApplicationController
上定义它,其他三个控制器都从中继承。

我不明白你的意思。部分是视图逻辑的一部分,然后您需要在控制器内重复代码。你能举例说明你的问题吗?我不明白你的意思。部分是视图逻辑的一部分,然后您需要在控制器内重复代码。你能举例说明你的问题吗?