2017-04-11 66 views
0

嗯,我有Omniauth IM網站使用設計的寶石和所有工作正常,但在Sign_in鑑於我表現的供應商如何改變供應商的名稱

<%- if devise_mapping.omniauthable? %> 
     <%- resource_class.omniauth_providers.each do |provider| %>   
      <%= link_to "#{OmniAuth::Utils.camelize(provider)},", omniauth_authorize_path(resource_name, provider), class: "#{provider} bold" %> 
     <% end -%> 
    <% end -%> 

問題是因爲視圖顯示:

Facebook,微博,GoogleOauth2

GoogleOauth2看起來很可怕,所以我怎麼能更改名稱GoogleOauth2爲「谷歌」我想這個但沒有窩ķ

<%- if devise_mapping.omniauthable? %> 
    <%- resource_class.omniauth_providers.each do |provider| %> 
     <% provider = "Google" if provider == "GoogleOauth2" %>   
     <%= link_to "#{OmniAuth::Utils.camelize(provider)},", omniauth_authorize_path(resource_name, provider), class: "#{provider} bold" %> 
    <% end -%> 
<% end -%> 

提供商:

色器件:omniauthable,omniauth_providers:[:臉譜,:微博:google_oauth2]

我也試圖與此 「google_oauth2」:

<%- if devise_mapping.omniauthable? %> 
     <%- resource_class.omniauth_providers.each do |provider| %> 
      <% provider = "Google" if provider == "google_oauth2" %>   
      <%= link_to "#{OmniAuth::Utils.camelize(provider)},", omniauth_authorize_path(resource_name, provider), class: "#{provider} bold" %> 
     <% end -%> 
    <% end -%> 

回答

0
<% provider = "Google" if provider == "GoogleOauth2" %> 

這隻會修改provider的值,如果它是GoogleOauth2

編輯:

根據意見,你需要的是另一個變量「prettyfy」顯示的文字,但保留原始值的的link_to幫手,所以這是我會做什麼:

<%= pretty_provider = provider == 'GoogleOauth2' ? "Google": provider %> 
<%= link_to "#{OmniAuth::Utils.camelize(pretty_provider)},", omniauth_authorize_path(resource_name, provider), class: "#{pretty_provider} bold" %> 
+0

沒有工作,哥哥:(我的代碼: <% - 如果devise_mappi ng.omniauthable? %> <% - resource_class.omniauth_providers.each do | provider | %> <%provider =「Google」if provider ==「GoogleOauth2」%> <%= link_to「#{OmniAuth :: Utils.camelize(provider)}」,omniauth_authorize_path(resource_name,provider),class:「 #{provider} bold「%> <% end -%> <% end -%> –

+0

用該代碼更新問題(在評論中是硬讀代碼)。 –

+0

謝謝我已經更新了 –