2017-01-23 103 views
0

我想添加社交分享鏈接到我的rails帖子,沒有寶石。這裏是我當前的代碼:社交分享的帖子

<!-- 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函數輸出的URLs不適用於Facebook/Twitter。社交網絡不知道如何處理/blog/how-to-not-get-booed-at-your-next-presentation - 他們需要該方案和域名,即https://mirrorcommunications.herokuapp.com/blog/how-to-not-get-booed-at-your-next-presentation