Rahul dagli
Rahul dagli

Reputation: 155

Rails jquery ajax get response 200, however data not appending

I'm trying to open partial in bootstrap modal. While trying to do so I'm getting 200 response however, js within show.haml isn't working. I have also added alert msg for testing which doesn't trigger. In the get response its fetching whole application layout template instead of just fetching the modal partial. I've used devise gem for authentication.

Controller

def show
    @hotels = Hotel.find(params[:id])
    respond_to do |format|
       format.html
       format.js
    end
end

index.haml

= link_to 'View', hotel, :remote => 'true'
#myModal

Show.haml

:plain
    $('#myModal').append('#{escape_javascript(render(partial: "modal") )}');
    alert('js works');

_modal.haml

:plain
    <div id="after-load" class="modal fade in" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="false" style="display: block;">
      <div class="modal-dialog">
        <div class="modal-content">

          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
            <h4 class="modal-title" id="myModalLabel">Modal Heading</h4>
          </div>
          <div class="modal-body">
            <h4>Text in a modal</h4>
            <p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula.</p>

            <h4>Popover in a modal</h4>
            <p>This <a href="#" role="button" class="btn btn-default popover-test" title="" data-content="And here's some amazing content. It's very engaging. right?" data-original-title="A Title">button</a> should trigger a popover on click.</p>

            <h4>Tooltips in a modal</h4>
            <p><a href="#" class="tooltip-test" title="" data-original-title="Tooltip">This link</a> and <a href="#" class="tooltip-test" title="" data-original-title="Tooltip">that link</a> should have tooltips on hover.</p>

            <hr>

            <h4>Overflowing text to show scroll behavior</h4>
            <p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
            <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.</p>
            <p>Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.</p>
            <p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
            <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.</p>
            <p>Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.</p>
            <p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
            <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.</p>
            <p>Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.</p>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            <button type="button" class="btn btn-primary">Save changes</button>
          </div>

        </div><!-- /.modal-content -->
      </div><!-- /.modal-dialog -->
    </div>
    <script>
        $('#myModal').modal('show');
    </script>

Network header

Remote Address:127.0.0.1:3000
Request URL:http://localhost:3000/admin_panel/hotels/6
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:*/*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Cookie:request_method=GET; _hotel_management_system_session=RmZ2bVZvOVozREVXZ0JqbUdRR2swVXdYQzBxS1V6QmtEY1p5bHMxNVlBRmcrZTZEYS9hd2tuenpUVlgxek5iWFFoMjFTSWM3UVJHZ3lxSjFsM3VodC81eHBWQytkak9qZTdCQUgrSWNEOXAxVW1BS0hTK3lZZzREeXgwYUMxdGI1bFdvQkcreEtPR0NWdURtK0w5U2h6bTNuZTNscmx1RExrSForNER2V3g4N1N5QU4vWERxNWZFaWFrSlFDcmlMekExK3p6R0ZSV254eFY3RDBJQXpUUHM4U0lwNjRPSEtlL1gwT0JxZEZaMjNqSyt6KzBmMG1scDFrOVlrVnk1Sm1iZXNQTTJ1MFVLSG1aS1lWS3hIQmtSdis3ZGl3MEVEL1pTeFBaNDMvUS91OHhGNEQ3UFBkMmJlVUZCMU9CM2QtLXhJZ0U2c3llTGM1eFMyZkFEM2U5Znc9PQ%3D%3D--4bf522af1dc16a8449aec2679dca0b17979e0339
Host:localhost:3000
If-None-Match:"b3e8adbdf28d0a8eaf7f6e28029abe9c"
Referer:http://localhost:3000/admin_panel/hotels
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36
X-CSRF-Token:Uii/iMRKdA1/1U3znuskDV5UsHgIlv0m8eHTO6gAIyY=
X-Requested-With:XMLHttpRequest
Response Headersview source
Cache-Control:max-age=0, private, must-revalidate
Connection:close
Content-Type:text/javascript; charset=utf-8
ETag:"588d56c1d81054a12a60c80c050894ac"
Server:thin 1.5.1 codename Straight Razor
Set-Cookie:_hotel_management_system_session=L1FxeHFwNjlOWVRRSG1mNHFFUmVsWXR6bVI4ZHpBK09TaGc5N1MvMEQ0ZTJDcVZGRnpidENCYkwvWHd3czdwMzViR2JZRmtGZWhwR3FneVJQTHliK3NLYzAzeG53QVJOL0xpL2xpNHo3SVpCV1Rmcm9DRWRFdEhQMHpjT0tZUktpSldqalNRb2VqYmxWaSs2SjRYb0U5V1RiZ2JUY2ZnVEpxbEZndjZ3VFdaajRBWi9ZMTFBem5KWHpMeFkyTXBaVTQrd2V5RjQ4SGhETUh6Sy9nR2l4Vllmd2hGQ0w0OU50MzNZT2htS1A0OWdKdVFNQW9iQmI2TklkMFljMjlxRTlTYlV3TThDQmJ4ZWJodXlJcmhPb0ZMYVprTGtLT1F4cHNuUzNYMW0xelBPS2lqZjBwUU9HaitraVZWUHhlM2YtLThCenl5elliTjMzcTZNa041aG8zTGc9PQ%3D%3D--9a5d43d31da30ec25bcd1bae0d39dc3f42e0ba84; path=/; HttpOnly
X-Content-Type-Options:nosniff
X-Frame-Options:SAMEORIGIN
X-Request-Id:fc8a525f-160a-4fe0-aa37-e3c7950f6960
X-Runtime:0.239231
X-XSS-Protection:1; mode=block

Network response

<!DOCTYPE html>
<html>
  <head>
    <title>Hotel Management System</title>
    <link data-turbolinks-track="true" href="/assets/application.css?body=1" media="all" rel="stylesheet" />
    <script data-turbolinks-track="true" src="/assets/jquery.js?body=1"></script>
    <script data-turbolinks-track="true" src="/assets/jquery_ujs.js?body=1"></script>
    <script data-turbolinks-track="true" src="/assets/turbolinks.js?body=1"></script>
    <script data-turbolinks-track="true" src="/assets/amenities.js?body=1"></script>
    <script data-turbolinks-track="true" src="/assets/dashboard.js?body=1"></script>
    <script data-turbolinks-track="true" src="/assets/homes.js?body=1"></script>
    <script data-turbolinks-track="true" src="/assets/hotels.js?body=1"></script>
    <script data-turbolinks-track="true" src="/assets/bootstrap/affix.js?body=1"></script>
    <script data-turbolinks-track="true" src="/assets/bootstrap/alert.js?body=1"></script>
    <script data-turbolinks-track="true" src="/assets/bootstrap/button.js?body=1"></script>
    <script data-turbolinks-track="true" src="/assets/bootstrap/carousel.js?body=1"></script>
    <script data-turbolinks-track="true" src="/assets/bootstrap/collapse.js?body=1"></script>
    <script data-turbolinks-track="true" src="/assets/bootstrap/dropdown.js?body=1"></script>
    <script data-turbolinks-track="true" src="/assets/bootstrap/tab.js?body=1"></script>
    <script data-turbolinks-track="true" src="/assets/bootstrap/transition.js?body=1"></script>
    <script data-turbolinks-track="true" src="/assets/bootstrap/scrollspy.js?body=1"></script>
    <script data-turbolinks-track="true" src="/assets/bootstrap/modal.js?body=1"></script>
    <script data-turbolinks-track="true" src="/assets/bootstrap/tooltip.js?body=1"></script>
    <script data-turbolinks-track="true" src="/assets/bootstrap/popover.js?body=1"></script>
    <script data-turbolinks-track="true" src="/assets/bootstrap-sprockets.js?body=1"></script>
    <script data-turbolinks-track="true" src="/assets/application.js?body=1"></script>
    <meta content="authenticity_token" name="csrf-param" />
    <meta content="Uii/iMRKdA1/1U3znuskDV5UsHgIlv0m8eHTO6gAIyY=" name="csrf-token" />
  </head>
  <body>

    <nav class='navbar navbar-default navbar-fixed-top' role='navigation'>
      <div class='container-fluid'>
        <div class='navbar-header col-xs-11 col-sm-2 col-md-1'>
          <button class='navbar-toggle collapsed' data-target='#admin-menu' data-toggle='collapse' type='button'>
            <span class='sr-only'>'Toggle navigation'</span>
            <span class='icon-bar'></span>
            <span class='icon-bar'></span>
            <span class='icon-bar'></span>
          </button>
          <a class="navbar-brand" href="/admin_panel/dashboard">Admin Panel</a>
        </div>
        <ul class='nav navbar-nav navbar-right col-xs-1 col-sm-1 pull-right'>
          <li class='pull-right'>
            <span class='glyphicon glyphicon-log-out'></span>
            <a data-method="delete" href="/admin_panel_account/sign_out" rel="nofollow">logout</a>
          </li>
        </ul>
        <div class='collapse navbar-collapse col-sm-9' id='admin-menu'>
          <ul class='nav navbar-nav admin-menu'>
            <li class='dropdown'>
              <a class="dropdown-toggle" href="/admin_panel/dashboard"><span class='glyphicon glyphicon-dashboard'></span>
              <span class='nav-text'>Dashboard</span>
              </a>
              <ul class='dropdown-menu' role='menu'>
                <li>
                  <a href="/homes">View Site</a>
                </li>
              </ul>
            </li>
            <li>
              <a href="/admin_panel/hotels"><span class='glyphicon glyphicon-home'></span>
              <span class='nav-text'>Hotels</span>
              </a>
            </li>
            <li>
              <a href="/admin_panel/amenities"><span class='glyphicon glyphicon-glass'></span>
              <span class='nav-text'>Amenities</span>
              </a>
            </li>
          </ul>
        </div>
      </div>
    </nav>
    <div class='container'>
      <div class='row'>
        <div class='col-md-12 main'>
          $('#myModal').html('<div id=\"after-load\" class=\"modal fade in\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"myModalLabel\" aria-hidden=\"false\" style=\"display: block;\">\n  <div class=\"modal-dialog\">\n    <div class=\"modal-content\">\n\n      <div class=\"modal-header\">\n        <button type=\"button\" class=\"close\" data-dismiss=\"modal\"><span aria-hidden=\"true\">×<\/span><span class=\"sr-only\">Close<\/span><\/button>\n        <h4 class=\"modal-title\" id=\"myModalLabel\">Modal Heading<\/h4>\n      <\/div>\n      <div class=\"modal-body\">\n        <h4>Text in a modal<\/h4>\n        <p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula.<\/p>\n\n        <h4>Popover in a modal<\/h4>\n        <p>This <a href=\"#\" role=\"button\" class=\"btn btn-default popover-test\" title=\"\" data-content=\"And here\'s some amazing content. It\'s very engaging. right?\" data-original-title=\"A Title\">button<\/a> should trigger a popover on click.<\/p>\n\n        <h4>Tooltips in a modal<\/h4>\n        <p><a href=\"#\" class=\"tooltip-test\" title=\"\" data-original-title=\"Tooltip\">This link<\/a> and <a href=\"#\" class=\"tooltip-test\" title=\"\" data-original-title=\"Tooltip\">that link<\/a> should have tooltips on hover.<\/p>\n\n        <hr>\n\n        <h4>Overflowing text to show scroll behavior<\/h4>\n        <p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.<\/p>\n        <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.<\/p>\n        <p>Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.<\/p>\n        <p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.<\/p>\n        <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.<\/p>\n        <p>Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.<\/p>\n        <p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.<\/p>\n        <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.<\/p>\n        <p>Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.<\/p>\n      <\/div>\n      <div class=\"modal-footer\">\n        <button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\">Close<\/button>\n        <button type=\"button\" class=\"btn btn-primary\">Save changes<\/button>\n      <\/div>\n\n    <\/div><!-- /.modal-content -->\n  <\/div><!-- /.modal-dialog -->\n<\/div>\n<script>\n $(\'#myModal\').modal(\'show\');\n<\/script>\n');
          alert('Hi');
        </div>
      </div>
    </div>
  </body>
</html>

Upvotes: 0

Views: 67

Answers (1)

Roman Kiselenko
Roman Kiselenko

Reputation: 44370

Set render layout: false in js action it should fix problem:

def show
  @hotels = Hotel.find(params[:id])
  respond_to do |format|
     format.html
     format.js { render layout: false }
  end
end

Upvotes: 1

Related Questions