将FB页面与Rails集成

时间:2015-07-31 09:57:57

标签: javascript ruby-on-rails facebook ruby-on-rails-3 facebook-graph-api

我正在尝试将FB页面与我的新Rails应用程序集成。

问题:

  • 只有当请求直接来自客户地址栏时才会正确呈现Fb Page容器(将url放在地址栏中并点击go)或当请求从一个控制器转到另一个控制器时。

  • 当在网站上点击同一控制器的任何操作,即从SAME控制器调用时,FB页面块未正确呈现。

在此测试Test Link

我所做的是:

  • application.html.erb
  • 中添加了FB JS
  • 就在那里,我将我的代码用于Fb Page。(如下所示)

application.html.erb

<!DOCTYPE html>
<html>
<head>
  <title>Forgotten Heroes</title>
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <%= csrf_meta_tags %>
</head>
<body>

<div id="fb-root"></div>

<!-- FB JAVASCRIPT SDK STARTS -->

<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.4";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

<!-- FB JAVASCRIPT SDK ENDS -->

<div id="header" class="generic">
  Forgotten Heroes
  <div id="main-menu">
    <span class='menu-links'>Home</span>
    <span class='menu-links'>Blogs</span>
    <span class='menu-links'>Trending</span>
    <span class='menu-links'>About Us</span>
  </div>

  <div id="fb-page-like">
    <div class="fb-page" data-href="https://www.facebook.com/IndianForgottenHeroes" data-width="350" data-small-header="true" data-adapt-container-width="false" data-hide-cover="false" data-show-facepile="false" data-show-posts="false">
    <div class="fb-xfbml-parse-ignore">
    <blockquote cite="https://www.facebook.com/IndianForgottenHeroes">
      <a href="https://www.facebook.com/IndianForgottenHeroes">Forgotten Heroes</a>
    </blockquote>
    </div></div>
  </div>

</div>

<%= yield %>

<div id="footer" class="generic">
  &copy; <a href="http://forgottenhero.in" >forgottenhero.in</a>
</div>

</body>
</html>

1 个答案:

答案 0 :(得分:0)

我得到了解决方案

它是由turbolink导致的,这导致每次使用html都不能正确执行js。

所以必须从//= require turbolinks

删除 application.js