配置设备以使用提供者图像作为 omniauth 链接
Configure devise to use provider images for omniauth links
我正尝试在 /view/devise/shared/_links.html.erb
中执行类似下面的操作,以便为在 login/register 视图中呈现的每个提供商 link 设置不同的图像。
注:这里我还没有添加link图片
<%- if devise_mapping.omniauthable? %>
<%- resource_class.omniauth_providers.each do |provider| %>
<% if provider == Facebook %>
<%= link_to "Sign in with #{OmniAuth::Utils.camelize(provider)}", omniauth_authorize_path(resource_name, provider) %><br />
<% end %>
<% if provider == Twitter %>
<%= link_to "Sign in with #{OmniAuth::Utils.camelize(provider)}", omniauth_authorize_path(resource_name, provider) %><br />
<% end %>
<% if provider == Google_Oauth2 %>
<%= link_to "Sign in with #{OmniAuth::Utils.camelize(provider)}", omniauth_authorize_path(resource_name, provider) %><br />
<% end %>
<% end -%>
<% end -%>
原代码是,
<%- 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) %><br />
<% end -%>
<% end -%>
但是打开视图时出现错误。
uninitialized constant ActionView::CompiledTemplates::Facebook
我使用的提供商名称似乎不正确(但它们正是从 #{OmniAuth::Utils.camelize(provider)}
.
呈现的名称
有什么方法可以让我查到这些需要是什么吗?
或者是否有更好的方法来实现我正在尝试做的事情?
您可以转到各自的宝石 github 页面并找到答案。
它们必须是 google_oauth2
、facebook
和 twitter
您可以使用
<% case provider %>
<% when :google_oauth2 %>
...
<% when :facebook %>
...
<% when :twitter %>
<% end %>
您可以使用 <i> <% if provider == :Facebook %> </i>
,而不是 <% if provider == Facebook %>
,符号为 ":"
我正尝试在 /view/devise/shared/_links.html.erb
中执行类似下面的操作,以便为在 login/register 视图中呈现的每个提供商 link 设置不同的图像。
注:这里我还没有添加link图片
<%- if devise_mapping.omniauthable? %>
<%- resource_class.omniauth_providers.each do |provider| %>
<% if provider == Facebook %>
<%= link_to "Sign in with #{OmniAuth::Utils.camelize(provider)}", omniauth_authorize_path(resource_name, provider) %><br />
<% end %>
<% if provider == Twitter %>
<%= link_to "Sign in with #{OmniAuth::Utils.camelize(provider)}", omniauth_authorize_path(resource_name, provider) %><br />
<% end %>
<% if provider == Google_Oauth2 %>
<%= link_to "Sign in with #{OmniAuth::Utils.camelize(provider)}", omniauth_authorize_path(resource_name, provider) %><br />
<% end %>
<% end -%>
<% end -%>
原代码是,
<%- 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) %><br />
<% end -%>
<% end -%>
但是打开视图时出现错误。
uninitialized constant ActionView::CompiledTemplates::Facebook
我使用的提供商名称似乎不正确(但它们正是从 #{OmniAuth::Utils.camelize(provider)}
.
有什么方法可以让我查到这些需要是什么吗?
或者是否有更好的方法来实现我正在尝试做的事情?
您可以转到各自的宝石 github 页面并找到答案。
它们必须是 google_oauth2
、facebook
和 twitter
您可以使用
<% case provider %>
<% when :google_oauth2 %>
...
<% when :facebook %>
...
<% when :twitter %>
<% end %>
您可以使用 <i> <% if provider == :Facebook %> </i>
,而不是 <% if provider == Facebook %>
,符号为 ":"