chrismccord/render_sync

Does not render async partial, only scripts

Godoy opened this issue · 1 comments

Godoy commented

I'm using ruby 2.3.0, rails 4.2.6 and render_sync 0.5.0.

When I creates a new item calling sync_new method, only scripts are appended in html.

I've started server with rackup sync.ru -E production

My Gemfile:

gem 'faye'
gem 'thin', require: false
gem 'render_sync'

config/sync.xml:

...
production:
  server: "http://localhost:9292/faye"
  adapter_javascript_url: "http://localhost:9292/faye/faye.js"
  adapter: "Faye"
  auth_token: "007700e05df739da084760a9ce48484b7592c4380c35843985a6055b5f8ecc07"
  async: true
...

Inspecting browser, i got:

Before

<div class="activity-log">
<script type="text/javascript" data-sync-id="/7439059e6aa0f6043cc71e1f321eaf429dd8a3c7">
  RenderSync.onReady(function(){
    var creator = new RenderSync.PartialCreator({
      name:         'activity_content',
      resourceName: 'activity',
      channel:      '/7439059e6aa0f6043cc71e1f321eaf429dd8a3c7',
      selector:     '/7439059e6aa0f6043cc71e1f321eaf429dd8a3c7',
      direction:    'append',
      refetch:      false
    });
    creator.subscribe();
  });
</script>
</div>

When sync_new fires:
After

<div class="activity-log">
<script type="text/javascript" data-sync-id="/7d722391372e7afc081084e74302b87cfac5b26e-start"></script>

<script type="text/javascript" data-sync-id="/7d722391372e7afc081084e74302b87cfac5b26e-end"></script>
<script type="text/javascript" data-sync-id="/7d722391372e7afc081084e74302b87cfac5b26e-start"></script>

<script type="text/javascript" data-sync-id="/7d722391372e7afc081084e74302b87cfac5b26e-end"></script>
<script type="text/javascript" data-sync-id="/7439059e6aa0f6043cc71e1f321eaf429dd8a3c7">
  RenderSync.onReady(function(){
    var creator = new RenderSync.PartialCreator({
      name:         'activity_content',
      resourceName: 'activity',
      channel:      '/7439059e6aa0f6043cc71e1f321eaf429dd8a3c7',
      selector:     '/7439059e6aa0f6043cc71e1f321eaf429dd8a3c7',
      direction:    'append',
      refetch:      false
    });
    creator.subscribe();
  });
</script>
</div>

What I doing wrong?

Thx!

Godoy commented

Sorry, solved... my mistake. I was using div as a container of partial and div as a container within the partial, but need to use ul/li or table/tr - both worked.