【问题标题】:Configure devise to use provider images for omniauth links配置设计以使用提供程序图像作为omniauth链接
【发布时间】:2016-05-06 09:07:26
【问题描述】:

我正在尝试在/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)} 呈现的内容。

有什么方法可以让我查找这些需要是什么?

或者,如果有更优化的方式来实现我正在尝试做的事情?

【问题讨论】:

    标签: ruby-on-rails devise omniauth


    【解决方案1】:

    你可以去各个 gems 的 github 页面找到。

    它们必须是 google_oauth2facebooktwitter

    你可以使用

    <% case provider %>
    <% when :google_oauth2 %>
      ...
    <% when :facebook %>
      ...
    <% when :twitter %>
    <% end %>
    

    【讨论】:

    • 尝试此操作时未呈现任何链接。
    • 你介意我问你为什么用when而不是if吗?
    • 只是代码看起来很漂亮。使用哪一个取决于您。您可以使用if elsif 完成相同的任务。我刚刚读到if elsif 比案例快。所以也许你可以使用if elsif
    【解决方案2】:

    您可以使用&lt;i&gt; &lt;% if provider == :Facebook %&gt; &lt;/i&gt;,而不是带有符号":"&lt;% if provider == Facebook %&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-13
      • 1970-01-01
      • 2016-12-30
      • 2011-07-22
      • 1970-01-01
      相关资源
      最近更新 更多