0

在将设计与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%>

然而,这些选项都不起作用

4

1 回答 1

2

已排序,问题出在我使用链接的方式上,我将其更改为块,因为我想使用社交登录引导按钮

为我自己和其他来到这篇文章的人注意:

当您将 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 -%>
于 2017-08-01T06:38:15.363 回答