我想实时制作我的应用
这是我的错误
我不知道该怎么办
请帮帮我。
最佳答案
我想我找到了解决方案。
在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