0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

devise x omniauth-twitter x bootstrap-social にてTwitterサインインボタンを出力する

Posted at

めっちゃ苦戦した。ポイントは 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.cssapp/assets/stylesheets配下に配置しようとしたが、bootstrap自体の読み込みをapp/javascript/src/application.scssでやっていたので、scssファイルとして同階層に配置し@import 'bootstrap-social.scssとしたものの、読み込み順が違ったりBootstrapのバージョンなのか、Fontawesome5を使っているからなのかレイアウトが崩れたりする。

結局、必要なCSSを Developer Tool を開きながら抜き出す形に‥。つまり言いたいのはTwitterボタンのデザイン適用方法はここのBootstrapのインストール方法によるので何とも言えないってこと。色々と非効率だし美しくない‥。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?