【问题标题】:Devise (3.4.1 2f0002a), undefined method `flash' for ActionDispatch::Request, rails 4.2设计(3.4.1 2f0002a),ActionDispatch::Request 的未定义方法“flash”,rails 4.2
【发布时间】:2015-04-02 23:30:12
【问题描述】:

当我 sign up 或 sign in 使用 devise 时。我收到以下错误:

undefined method `flash' for #<ActionDispatch::Request:0xda424ac>

这是我第一个使用rails 4.2 的项目,以前所有的项目都最多有rails 4.1.8,我从来没有遇到过类似的问题。

错误跟踪路径是:

.../.rvmruby (2.1.2) bundler/gems/devise-2f0002a449a8/lib/devise/failure_app.rb:18:in `flash'
.../.rvmruby (2.1.2) bundler/gems/devise-2f0002a449a8/lib/devise/failure_app.rb:58:in `redirect'
.../.rvmruby (2.1.2) bundler/gems/devise-2f0002a449a8/lib/devise/failure_app.rb:39:in `respond'
actionpack (4.2.0) lib/abstract_controller/base.rb:198:in `process_action'
actionpack (4.2.0) lib/abstract_controller/base.rb:137:in `process'
actionpack (4.2.0) lib/action_controller/metal.rb:195:in `dispatch'
actionpack (4.2.0) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'

如果您需要更多信息,请说,我已经坚持了一段时间。

我看到有人在使用 rails-api gem 时遇到问题,但我没有使用 rails-api gem。

感谢您的所有帮助。

【问题讨论】:

    标签: ruby-on-rails devise ruby-on-rails-4.2


    【解决方案1】:

    尝试添加到您的config/application.rb:

    config.middleware.use ActionDispatch::Flash
    

    【讨论】:

    • 当我添加这个时,我无法登录。无论我尝试什么操作,我都会得到 401 Unauthorized (action with devise)
    • config.middleware.use config.session_store, config.session_options config.middleware.use Rack::MethodOverride config.middleware.use ActionDispatch::Cookies config.middleware.use ActionDispatch::Session::CookieStore config.middleware.use ActionDispatch::Flash
    • @Thomas 这解决了我的问题,但你能解释一下为什么吗?此外,这似乎只发生在生产上,而不是开发上。 ::Flash 不应该包含在库存导轨中吗?
    猜你喜欢
    • 1970-01-01
    • 2013-11-05
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 2015-09-13
    • 2018-10-30
    • 1970-01-01
    • 2015-05-20
    相关资源
    最近更新 更多