【问题标题】:How to access cookies method in a Rails 3.0 metal class如何在 Rails 3.0 金属类中访问 c​​ookie 方法
【发布时间】:2011-11-01 21:18:29
【问题描述】:

我在 app/controllers 目录中有一个 Rails 3.0 金属类。

class FooMetalController < ActionController::Metal

  include ActionController::Cookies
  include ActionController::Helpers::ClassMethods
  include ActionDispatch::Session::CookieStore

  def hit
    unless cookies[:user_id].nil?
      logger.info("Cookies value is : #{cookies[:user_id]}")
      redirect_to "http://www.yahoo.com"
    else
      cookies[:user_id] = { :value => "198", :expires => 180.days.from_now }
      redirect_to "http://www.google.com"
    end
  end

end

当我点击 url 时:http://localhost:3000/foohit 方法被调用。问题是它无法使用 cookies 方法。我已经包含了与 cookie 相关的模块,但我仍然得到:ActionController::RoutingError (undefined method `helper_method' for 错误信息。

如何让 Rails 金属类识别 cookies 方法?

【问题讨论】:

    标签: ruby-on-rails cookies


    【解决方案1】:

    看源码:https://github.com/rails/rails/blob/master/actionpack/lib/action_controller/metal/cookies.rb

    包含ActionController::Cookies 似乎在包含时隐式调用helper_method。尝试在ActionController::Cookies 之前包含ActionController::Helpers

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-13
      • 2010-09-11
      • 1970-01-01
      • 2014-09-27
      • 1970-01-01
      • 2013-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多