【问题标题】:Rails: Use helper_method from one controller in anotherRails:在另一个控制器中使用 helper_method
【发布时间】:2011-05-09 15:27:12
【问题描述】:

我有以下控制器:

class FirstController < ApplicationController
  helper_method :contoller_method

private 
  def contoller_method
    "text"
  end
end

如何在另一个控制器的视图中使用contoller_method?有最佳做法吗?

【问题讨论】:

    标签: ruby-on-rails helper


    【解决方案1】:

    将方法放在application_controller.rb 中。然后它将可供您的所有控制器使用。

    如果您只想在两个班级之间共享它,您可以这样做。创建一个名为 helper controller 的新控制器,并让 First/Second 控制器继承自它。

    class FirstController < HelperController
    
    end
    
    class SecondController < HelperController
    
    end
    
    class HelperController < ApplicationController
      helper_method :contoller_method
    
      private 
        def contoller_method
          "text"
        end
    end
    

    【讨论】:

    • 这是一个选项 :) 谢谢。但是我可以只在两个控制器之间共享这个方法吗?
    【解决方案2】:

    也许是这个?

    class FirstController
      include SomeConcern
    end
    
    class SecondController
      include SomeConcern
    end
    
    module SomeConcern
      def self.included(base)
        base.helper_method :controller_method
      end
    
      private 
    
      def controller_method
        "text"
      end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-22
      • 1970-01-01
      • 1970-01-01
      • 2011-08-11
      • 2014-10-29
      • 2019-12-09
      • 2016-06-23
      • 1970-01-01
      相关资源
      最近更新 更多