Ajax для обновления значения в таблице не работает - PullRequest
0 голосов
/ 05 января 2019

Ajax-вызов для вызова POST модели возвращает ошибку 404 Не уверен, почему было сделано 2 почтовых звонка. Является ли маршрут проблемой?

show.html.erb:

 <script type="text/javascript">
      var apiKey = '<%= @api_key %>';
      var sessionId = '<%= @room.session_id %>';
      var token = '<%= @token %>';
      var room = '<%= @room %>';
    </script>


    <%= debug @room %>

    <input type="hidden" name="_method" value="put" />
    <script>

      var session;
      var connection_id;
      var connectionCount;

      initializeSession();

      // Connect to the session
      session.connect(token, function(error) {
         // If the connection is successful, publish to the session
         console.log("session connected")
         if (error) {
           handleError(error);
         } else {
         session.publish(publisher, handleError);
       }
      });

     session.on("connectionCreated", function(event) {
      console.log("connectionCreated");
      console.log(room.id);
      connectionCount++;
      // jqueryFunction("Call from js to jquery");
       $.ajax({
        type: "PUT",
        data: JSON.stringify({ room: {name: 'New_room'}, _method:'put' }),
        url: "/rooms/" + room.id + "/connected",
        contentType: 'application/json'
    }).done(function( msg )
    {
        alert( "Data Saved: " + msg );
    });

   }
   </script>
   room GET    /rooms/:id(.:format)         rooms#show
              PATCH  /rooms/:id(.:format)         rooms#update
              PUT    /rooms/:id(.:format)         rooms#update
              DELETE /rooms/:id(.:format)         rooms#destroy


def update
    # @room.update_attributes(params[:name])
end

Ошибка: POST http://localhost:3000/room/6 404 (не найдено) POST http://localhost:3000/rooms/room 404 (не найдено)

1 Ответ

0 голосов
/ 05 января 2019

Rails генерирует запрос put, вводя скрытое поле в форму с именем _method и значением put, например

 <input type="hidden" name="_method" value="put" />

так что вам нужно перейти на этот

 $.ajax({
    type: "POST",
    dataType: "script",
    url: '/rooms/5',
    contentType: 'application/json',
    data: {rooms:{name: "New_room"}, _method: "put"}
 }).done(function( msg ) {
      alert( "Data Saved: " + msg );
    });
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...