devise omniauth google oath error : undefined method `stringify_keys' for "/users/auth/google_oauth2":String
devise omniauth google oath error : undefined method `stringify_keys' for "/users/auth/google_oauth2":String
在将设计与 omniauth-google-oauth2 gem 一起使用时,会在使用 Google 登录的部分中生成 link。默认代码不呈现 links.
这是自动生成的片段(我添加了一些基于 bootstrap 的样式)
<%- if devise_mapping.omniauthable? %>
<%- resource_class.omniauth_providers.each do |provider| %>
<%= link_to "Sign in with #{OmniAuth::Utils.camelize(provider)}", omniauth_authorize_path(resource_name, provider), class: "btn btn-block btn-social btn-google" do %>
<span class="fa fa-google"></span>
<%end%>
<br />
<% end -%>
<% end -%>
这行不通,我尝试了 fiddle 了一下,想出了
<%= link_to "Sign in with #{OmniAuth::Utils.camelize(provider)}", user_google_oauth2_omniauth_authorize_path, class: "btn btn-block btn-social btn-google" do %>
<span class="fa fa-google"></span>
<%end%>
但是 none 个选项有效
已排序,问题出在我使用 link 的方式上,我将其更改为一个块,因为我想使用社交登录 Bootstrap 按钮
我自己和其他来这里的人请注意post:
当您将 link_to 转换为块时,您不提供 link 文本参数,该文本必须进入块
这是工作版本
<%- if devise_mapping.omniauthable? %>
<%- resource_class.omniauth_providers.each do |provider| %>
<%= link_to omniauth_authorize_path(resource_name, provider), class: "btn btn-block btn-social btn-google" do %>
<span <span class="fa fa-google"></span> Sign in with <%=OmniAuth::Utils.camelize(provider)%>
<%end%>
<br />
<% end -%>
<% end -%>
在将设计与 omniauth-google-oauth2 gem 一起使用时,会在使用 Google 登录的部分中生成 link。默认代码不呈现 links.
这是自动生成的片段(我添加了一些基于 bootstrap 的样式)
<%- if devise_mapping.omniauthable? %>
<%- resource_class.omniauth_providers.each do |provider| %>
<%= link_to "Sign in with #{OmniAuth::Utils.camelize(provider)}", omniauth_authorize_path(resource_name, provider), class: "btn btn-block btn-social btn-google" do %>
<span class="fa fa-google"></span>
<%end%>
<br />
<% end -%>
<% end -%>
这行不通,我尝试了 fiddle 了一下,想出了
<%= link_to "Sign in with #{OmniAuth::Utils.camelize(provider)}", user_google_oauth2_omniauth_authorize_path, class: "btn btn-block btn-social btn-google" do %>
<span class="fa fa-google"></span>
<%end%>
但是 none 个选项有效
已排序,问题出在我使用 link 的方式上,我将其更改为一个块,因为我想使用社交登录 Bootstrap 按钮
我自己和其他来这里的人请注意post:
当您将 link_to 转换为块时,您不提供 link 文本参数,该文本必须进入块
这是工作版本
<%- if devise_mapping.omniauthable? %>
<%- resource_class.omniauth_providers.each do |provider| %>
<%= link_to omniauth_authorize_path(resource_name, provider), class: "btn btn-block btn-social btn-google" do %>
<span <span class="fa fa-google"></span> Sign in with <%=OmniAuth::Utils.camelize(provider)%>
<%end%>
<br />
<% end -%>
<% end -%>