No commit activity in last 3 years
No release in over 3 years
rails-social-share-button is one of the best rails helper gem​ to add social share feature in your Rails app. Such as Twitter, Facebook, Tumblr, Weibo, Douban, QQ...
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.7
>= 0
~> 10.0
 Project Readme

rails-social-share-button Gem Version Gem Total Downloads

rails-social-share-button is one of the best rails helper gem​ to add social share feature in your Rails app. Include Twitter, Facebook, Weibo, Douban, QQ, Tumblr...

rails-social-share-button

Installation

Add this line to your application's Gemfile:

gem 'rails-social-share-button'

And then execute:

$ bundle

Or install it yourself as:

$ gem install rails-social-share-button

Generate configuration file:

$ rails generate rails_social_share_button:install

Configuration

You can customize config/initializers/rails_social_share_button.rb to set the social network sites which you want to display:

RailsSocialShareButton.configure do |config|
  config.allow_sites = %w(facebook twitter google_bookmark pinterest telegram reddit tumblr 
                          linkedin telegram whatsapp_app whatsapp_web hacker_news delicious 
                          email vkontakte odnoklassniki xing wechat weibo qq douban)
end

Usage

Step1: Add //= require rails-social-share-button or #= require social-share-button/wechat in app/assets/javascripts/application.js:

//= require rails-social-share-button
//= require rails-social-share-button/wechat # If you gonna use WeChat

Step2: Add *= require rails-social-share-button in app/assets/stylesheets/application.css or app/assets/stylesheets/application.scss:

*= require rails-social-share-button

For Rails 4.1.6:

@import "rails-social-share-button";

Documentation

Now you can use social_share_button_tag helper method in views to display the social share buttons.

For example:

<%= rails_social_share_button_tag(@title) %>

You can set title for the special social network:

<%= rails_social_share_button_tag(@title, 'data-twitter-title' => 'Title for Twitter') %>

You can set the social network sites which you want to display at runtime:

<%= rails_social_share_button_tag(@title, allow_sites: %w(facebook twitter)) %>

You can set rel attribute:

<%= rails_social_share_button_tag(@title, rel: "Tweet") %>

You can set the URL that it links to in the content:

<%= rails_social_share_button_tag(@title, url: "http://yourapp.com/hello_world") %>
<%= rails_social_share_button_tag(@title, url: "http://yourapp.com/hello_world", image: "http://yourapp.com/images/hello_world.jpg", desc: "The summary of the content", via: "YourTwitterName") %>

For Tumblr there are an extra settings that prefixed with data-*:

<%= rails_social_share_button_tag(@title, image: "http://yourapp.com/images/hello_world.jpg", 'data-type' => 'photo') %>
<%= rails_social_share_button_tag(@title, 'data-source' => "http://yourapp.com/images/hello_world.jpg", 'data-type' => 'photo') %>

The mapping of attributes:

Facebook

Facebook needs the description added.

<%= rails_social_share_button_tag('Share to Facebook', url: course_path(@course), desc: @course.description) %>

Note: You need to test from a live site or Facebook will reject it (localhost will not work).

Custom Icon Size

You can override rails-social-share-button base css to customize the icon size in app/assets/stylesheets/application.scss:

$size: 24px;

.rails-social-share-button {
  .ssb-icon {
    background-size: $size $size;
    height: $size;
    width: $size;
  }
}

License

MIT License

Copyright (c) 2019 - Present, Bunlong VAN ( Maintainer )