我正尝试在/view/devise/shared/_links.html.erb
中执行以下操作,为登录/注册视图中呈现的每个提供者链接设置不同的图像。
注意:此处我还没有添加图片链接。
<%- 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 -%>
但是我在打开视图时遇到错误。
未初始化的常量ActionView :: CompiledTemplates :: Facebook
我使用的提供商名称似乎不正确(但它们正是从#{OmniAuth::Utils.camelize(provider)}
呈现的内容。
有没有办法可以查看这些需要的内容?
或者,如果有更好的方式来实现我正在尝试做的事情?
答案 0 :(得分:0)
你可以去相应的宝石的github页面找出来。
它们必须是google_oauth2
,facebook
和twitter
您可以使用
<% case provider %>
<% when :google_oauth2 %>
...
<% when :facebook %>
...
<% when :twitter %>
<% end %>
答案 1 :(得分:0)
您可以使用profunctors
代替带有符号<i> <% if provider == :Facebook %> </i>
的{{1}}