2017-01-23 21 views
0

私は宝石なしで私のレールの投稿にソーシャル共有リンクを追加しようとしています。ここに私の現在のコードは次のとおりです。投稿用のソーシャル共有

<!-- Facebook --> 
<a onclick="javascript:window.open('http://www.facebook.com/sharer/sharer.php?u=<%= url_for([@post, {only_path: false}]) %>', '_blank', 'width=800, height=500, top=200, left=300');void(0);"><i class="fa fa-facebook" aria-hidden="true"></i></a> 

<!-- Twitter --> 

<a onclick="javascript:window.open('https://twitter.com/intent/tweet?text=<%= @post.title %> by @someuser - &amp;url=<%= url_for([@post, {only_path: false}]) %>', '_blank', 'width=800, height=500, top=200, left=300');void(0);"><i class="fa fa-twitter" aria-hidden="true"></i></i></a> 

例ポスト:https://mirrorcommunications.herokuapp.com/blog/how-to-not-get-booed-at-your-next-presentation

例ソース:ビュー・ソース:https://mirrorcommunications.herokuapp.com/blog/how-to-not-get-booed-at-your-next-presentation

Facebookはその後、クラッシュやTwitterが私にページが見つからないというエラーを与えて、開こうとします。どんな助けもありがとう。ありがとう!

+0

を私たちにされていますレンダリング、最終的なHTMLを表示します生成される。 – ceejayoz

+0

@ceejayozはソースのサンプル投稿へのリンクを追加しました。 – bgilbank

+0

これはどうでしょうか? %> url_for(["https://mirrorcommunications.herokuapp.com" + @post、{only_path:false}])%> – bgilbank

答えて

1

は最後にそれを考え出した:

投稿コントローラー:

# Social Sharing for Single Posts 
def original_url 
    base_url + original_fullpath 
end 

ビュー:

<!-- Facebook --> 
<a onclick="javascript:window.open('http://www.facebook.com/sharer/sharer.php?u=<%= request.original_url %>', '_blank', 'width=800, height=500, top=200, left=300');void(0);"><i class="fa fa-facebook" aria-hidden="true"></i></a> 

<!-- Twitter --> 

<a onclick="javascript:window.open('https://twitter.com/intent/tweet?text=<%= @post.title %> by @someuser - &amp;url=<%= request.original_url %>', '_blank', 'width=800, height=500, top=200, left=300');void(0);"><i class="fa fa-twitter" aria-hidden="true"></i></i></a> 

ここではドキュメントです:http://api.rubyonrails.org/classes/ActionDispatch/Request.html#method-i-original_url

1

url_for機能は、Facebook/Twitterで機能しないURLを出力しています。ソーシャルネットワークでは/blog/how-to-not-get-booed-at-your-next-presentationの処理方法がわかりません。スキームとドメイン名が必要です。つまり、https://mirrorcommunications.herokuapp.com/blog/how-to-not-get-booed-at-your-next-presentationです。

関連する問題