【问题标题】:Access request object in rails helper在 rails helper 中访问请求对象
【发布时间】:2014-07-20 04:51:39
【问题描述】:

在我的 application_helper.rb 文件中,我有一个这样的函数:

def find_subdomain
  request.domain
end
未定义的局部变量或方法“请求”

我正在另一个助手中调用此方法。如何在不从控制器传递任何参数的情况下在助手中获取域。

【问题讨论】:

  • 是一个应该知道request的助手?
  • request 在助手中可用。你能告诉我们你是如何为这个助手定义类的吗?
  • request 对象作为方法参数传递。
  • 虽然您的代码看起来应该可以工作,但将请求对象显式传递给您的视图助手是一个更好的设计。

标签: ruby-on-rails ruby


【解决方案1】:

我知道这是旧的,但最近我自己偶然发现了这个,我想我会加入。您可以将该方法添加到您的 ApplicationController 并将其指定为 helper_method

class ApplicationController < ActionController::Base
  helper_method :find_subdomain

  private

  def find_subdomain
    request.domain
  end
end

【讨论】:

    【解决方案2】:

    正如其他人所提到的,请求对象应该被传递给你的助手,这会让你从视图(ERB)中传递它,如下所示,

    <%= find_subdomain(request) %>
    

    【讨论】:

      【解决方案3】:

      类 ApplicationController

      助手:全部

      结束

      【讨论】:

        猜你喜欢
        • 2021-07-20
        • 2020-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-02
        相关资源
        最近更新 更多