在使用omniauth-google-oauth2 gem的设计时,在使用Google登录的部分内容中会生成一个链接。默认代码不呈现链接。
这是自动生成的片段(我添加了一些基于引导程序的样式)
<%- 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 -%>
这不起作用,我试了一下,然后想出了
<%= 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%>
但是没有一个选项可以使用
答案 0 :(得分:0)
排序,问题在于我使用链接的方式,我将其更改为块,因为我想使用社交登录引导按钮
请注意我自己和其他人来这篇文章:
当你将link_to转换为一个块时,你没有给出链接文本参数,该文本必须在块中
这是工作版
<%- 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 -%>