Rails:在另一个控制器中使用一个控制器的 helper_method

发布于 2024-10-02 11:27:44 字数 240 浏览 3 评论 0原文

我有以下控制器:

class FirstController < ApplicationController
  helper_method :contoller_method

private 
  def contoller_method
    "text"
  end
end

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

I have the following controller:

class FirstController < ApplicationController
  helper_method :contoller_method

private 
  def contoller_method
    "text"
  end
end

How can I use contoller_method in the view of another controller? Is there a best practice?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

热鲨 2024-10-09 11:27:44

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

如果您只想在两个类之间共享它,您可以这样做。创建一个名为辅助控制器的新控制器,并让第一个/第二个控制器继承它。

class FirstController < HelperController

end

class SecondController < HelperController

end

class HelperController < ApplicationController
  helper_method :contoller_method

  private 
    def contoller_method
      "text"
    end
end

Place the method in the application_controller.rb. Then it'll be available to all your controllers.

If you only wanted to share it between two classes you could do something like this. Create a new controller called helper controller and have the First/Second controller inherit from it.

class FirstController < HelperController

end

class SecondController < HelperController

end

class HelperController < ApplicationController
  helper_method :contoller_method

  private 
    def contoller_method
      "text"
    end
end
酒中人 2024-10-09 11:27:44

也许是这个?

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

Maybe this?

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文