めっちゃ苦戦した。ポイントは link_to の文字列をなくしてdo-end
で囲み、中にspanを置くことと、'twitter`が文字列でなくシンボルなこと。
## app/views/devise/shared/_links.html.erb
<%- if devise_mapping.omniauthable? %>
<%- resource_class.omniauth_providers.each do |provider| %>
<% puts provider.class %>
<% if provider == 'twitter'.to_sym %>
<%= link_to omniauth_authorize_path(resource_name, provider), class: "btn btn-block btn-social btn-twitter" do %>
<span class="fab fa-twitter"></span>Sign in with Twitter
<% end %>
<% else %>
<%= link_to "Sign in with #{OmniAuth::Utils.camelize(provider)}", omniauth_authorize_path(resource_name, provider) %><br />
<% end %>
<% end %>
<% end %>
bootstrap-socialはGithubのbootstrap-social.css
をapp/assets/stylesheets
配下に配置しようとしたが、bootstrap自体の読み込みをapp/javascript/src/application.scss
でやっていたので、scssファイルとして同階層に配置し@import 'bootstrap-social.scss
としたものの、読み込み順が違ったりBootstrapのバージョンなのか、Fontawesome5を使っているからなのかレイアウトが崩れたりする。
結局、必要なCSSを Developer Tool を開きながら抜き出す形に‥。つまり言いたいのはTwitterボタンのデザイン適用方法はここのBootstrapのインストール方法によるので何とも言えないってこと。色々と非効率だし美しくない‥。