2012-02-12 2 views
0

검도 그리드에 대한 업데이트를 시도하고 있는데 문제가 있습니다.검도 UI 그리드 - 업데이트가 지속되지 않음

나는 백 엔드로 레일을 사용하고 있는데 내가 업데이트를 수행 할 때, 서버는 모든 일을 보여주는 것 같다 그러나

 Started PUT "/" for 127.0.0.1 at 2012-02-12 17:28:19 -0600 
      Processing by HomeController#index as 
      Parameters: {"models"=>"[{\"created_at\":\"2012-02-08T17:34:50Z\", 
     \"first_name\":\"Milla\",\"id\":2,\"last_name\":\"sfasfsdf\",\"password\":\"\", 
     \"updated_at\":\"2012-02-08T17:34:50Z\",\"user_name\" 
     :\"\"}]"} 
     Rendered home/index.html.erb within layouts/application (3.0ms) 
     Completed 200 OK in 89ms (Views: 88.0ms | ActiveRecord: 0.0ms) 

, 내가보기를 새로 고칠 때, 아무것도 변경되었습니다. 데이터베이스를 점검했을 때 물론 변경 사항이 발생하지 않았습니다.

나는 그리드에서 편집 작업을 수행하는 방법에 대해 여기에 문서를 통해 갔다 : http://demos.kendoui.com/web/grid/editing.html

그리고 레일에서 작동하도록 그리드를 설정하는 방법에 대한 버크 랜즈 비디오 시청 : http://www.youtube.com/watch?v=FhHMOjN0Bjc&context=C3f358ceADOEgsToPDskKlwC22A9IkOjYnQhYyY9HI

에게 가

이 있어야합니다을 내가 옳은 일은 아니지만, 나는 그것을 보지 못하고 있습니다.

다음은 검도 재료와 함께 작동 내 코드입니다 :

  var User = kendo.data.Model.define({ 
       id: "id", 
       fields: { 
        first_name: { validation: { required: true } }, 
        last_name: { validation: { required: true } } 
       } 
      }); 

      var UsersData = new kendo.data.DataSource({ 
        transport: { 
         read: { 
          url: "/users.json" 
         }, 

         create: { 
          url: "https://stackoverflow.com/users/create.json", 
          type: "POST" 
         }, 

         update: { 

          type: "PUT" 
         }, 

         destroy: { 
          type: "DELETE" 
         }, 

         parameterMap: function(options, operation) { 
          if (operation !== "read" && options.models) { 
           return {models: kendo.stringify(options.models)}; 
          } 
         } 


        }, 

        batch: true, 

        pageSize: 5, 

        schema: { 
         model: User 
        } 


       });    

       $("#users-grid").kendoGrid({ 

        dataSource: UsersData, 
        navigatable: true, 
        editable: true,      
        selectable: true, 
        pageable: true, 
        sortable: true, 
        toolbar: ["create", "save", "cancel"], 

        columns: [ 
        { 
         field: "first_name", 
         title: "First Name" 
        }, 
        { 
         field: "last_name", 
         title: "Last Name" 
        }, 



        ] 


       }); 
+0

어떻게 백엔드에서 PUT을 처리하도록 설정합니까? 일괄 적으로 데이터를 전송하기 때문에 약간 다르게 처리해야합니다. 어쩌면이 게시물을 확인할까요? http://stackoverflow.com/questions/1507011/bulk-update-objects-using-form-in-rails –

답변

1

좀 더 연구와 나는 그것을

나는 7 개 편안하고 경로를 재정의 할 경로를 추가 ...이처럼 작동있어 한 Rails가 기본적으로 제공합니다. 당신의 Routes.rb 파일에서 ... 기본적으로 우리는 컨트롤러의 업데이트 정의로 이동하여 모든 박았을 처리하려고 말한다

match 'users' => 'users#update', :via => :put 

을이 줄을 추가합니다.

이제 컨트롤러 정의에서 RESTful이 아니기 때문에 조금 다르게 처리해야합니다. 당신은 ... 개체 속성으로 업데이트하는 객체를 반복 먼저 당신이 된 parameterMap을 통해 전송하는 JSON을 구문 분석 할 필요

def update 
    respond_to do |format| 
    @users = JSON.parse(params[:models]) 
    @users.each do |u| 
     user = User.find(u["id"])  
     unless user.nil? 
      user.update_attributes u 
     end 
    end 
    format.json { head :no_content } 
    end 
end 
+0

안녕 버크 - 너 다 남자! 도움을 주셔서 감사합니다, 지금 큰 작품 (그리고 나는 검도 물건을 정말로 즐겁게하고있다) – PhillipKregg

1
의 URL 키는 기능을 할 수 있기 때문에 당신은 또한 당신의 데이터 소스를 수정할 수 있습니다

:

var UsersData = new kendo.data.DataSource({ 
    transport: { 
     read: { 
      url: '/users.json', 
      dataType: 'json' 
     }, 
     update: { 
      url: function (o) { 
      return '/users/' + o.id + '.json' 
      }, 
      dataType: 'json', 
      type: 'PUT' 
     }, 
     destroy: { 
      url: function (o) { 
      return '/users/' + o.id + '.json' 
      }, 
      dataType: 'json', 
      type: 'DELETE', 
     }, 
     create: { 
      url: '/users.json', 
      dataType: 'json', 
      type: 'POST' 
     }, 
     parameterMap: function(options, operation) { 
      if (operation !== "read" && options.models) { 
       return {models: kendo.stringify(options.models)}; 
      } 
     } 
    }, 
    batch: true, 
    pageSize: 5, 
    schema: { 
     model: User 
    } 
}); 
관련 문제