2017-01-23 101 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