Twitter 未定义的局部变量或方法“provider';对于OmniAuthCallbackController

Twitter 未定义的局部变量或方法“provider';对于OmniAuthCallbackController,twitter,ruby-on-rails-4,devise,omniauth,Twitter,Ruby On Rails 4,Devise,Omniauth,下面是关于Desive+Omniauth+Rails 4的多供应商教程。我的代码与上一次的示例非常接近,只不过我去掉了confirmable模块,将linkedin改为google_oauth2 一切正常,直到我到达回调,然后rails引发以下错误: NameError - undefined local variable or method `provider' for #<OmniauthCallbacksController:0x007fa8312a5298>: (eval

下面是关于Desive+Omniauth+Rails 4的多供应商教程。我的代码与上一次的示例非常接近,只不过我去掉了confirmable模块,将linkedin改为google_oauth2

一切正常,直到我到达回调,然后rails引发以下错误:

NameError - undefined local variable or method `provider' for #<OmniauthCallbacksController:0x007fa8312a5298>:
  (eval):7:in `twitter'
NameError-未定义的局部变量或#的“provider”方法:
(评价):7:在“推特”中
这是我的OmniAuthCallbackController(与上面的链接几乎相同):

class OmniAuthCallbackController
请更改以下行:

set_flash_message(:notice, :success, kind: provider.capitalize) if is_navigational_format?
致:


请注意
#{provider}
周围的花括号,由于参数是作为符号传入的,因此它也需要字符串化。

谢谢!在产生双重渲染错误时也遇到了一些问题。我通过完全删除set_flash_消息并在重定向之前使用flash[:notice]=“blahblah”设置它,成功地克服了这个问题。
set_flash_message(:notice, :success, kind: provider.capitalize) if is_navigational_format?
set_flash_message(:notice, :success, kind: "#{provider}".capitalize) if is_navigational_format?