如何从 Rails 中的视图和控制器调用辅助方法?

发布于 2024-09-01 13:14:15 字数 144 浏览 5 评论 0原文

我创建了一个辅助方法来进行一些简单的计算。这个辅助方法将只返回一个整数。我需要控制器和视图中的帮助程序。

不幸的是,它在视图中运行良好,但在控制器中则不然。我收到未定义的局部变量或方法错误。我该如何修复它?

谢谢大家

I created a helper method for some simple calculation. This helper method will just return an integer. I need the helper in both controllers and views.

Unfortunately, it work well in views but not in controllers. I get the undefined local variable or method error. How can I fix it?

Thanks all

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

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

发布评论

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

评论(2

情话已封尘 2024-09-08 13:14:15

为了在控制器和视图中使用相同的方法,请在 application_controller.rb 中添加方法并使其成为辅助方法

例如,

class ApplicationController < ActionController::Base
  helper :all # include all helpers, all the time
  #protect_from_forgery # See ActionController::RequestForgeryProtection for details
  helper_method :current_user 

  def current_user
    session[:user]
  end

end

现在您可以在控制器和控制器中使用方法 current_user意见

In order to use same methods in both controller and views Add you method in application_controller.rb and make it helper methods.

For example

class ApplicationController < ActionController::Base
  helper :all # include all helpers, all the time
  #protect_from_forgery # See ActionController::RequestForgeryProtection for details
  helper_method :current_user 

  def current_user
    session[:user]
  end

end

Now you can use method current_user in both controllers & views

挽梦忆笙歌 2024-09-08 13:14:15

我使用以下解决方案。因为我认为助手的方法应该存储在适当的助手模块中。

module TestHelper
  def my_helper_method
    #something
  end
end


class SomeController < ApplicationController
  def index
    template.my_helper_method
  end
end

I use a following solution. Because I think helper's methods shoud be stored in an appropriate helper module.

module TestHelper
  def my_helper_method
    #something
  end
end


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