我想实时制作我的应用

这是我的错误



我不知道该怎么办

请帮帮我。

最佳答案

我想我找到了解决方案。

renderer_with_signed_in_user中定义ApplicationController类方法。

class ApplicationController < ActionController::Base
  ...
  def self.renderer_with_signed_in_user(user)
    ActionController::Renderer::RACK_KEY_TRANSLATION['warden'] ||= 'warden'
    proxy = Warden::Proxy.new({}, Warden::Manager.new({})).tap { |i|
      i.set_user(user, scope: :user, store: false, run_callbacks: false)
    }
    renderer.new('warden' => proxy)
  end
  ...
end

然后,您可以从Rails应用程序的其他部分进行渲染,如下所示:
renderer = ApplicationController.renderer_with_signed_in_user(user)
renderer.render template: 'notifications/show', layout: false, locals: { foo: 'bar' }

感谢Stefan Wienert的article

07-24 16:49