2011-07-17 4 views
1

내가 사용하고있는 유일한 원격 양식은 아니지만 여기에서 문제를 볼 수는 없습니다. 이 테이블은 모든 행마다 고유 한 양식과 인라인 양식 필드가있는 간단한 테이블입니다.추가 할 때 양식이 작동하지 않습니다. remote => true

<% for temporary_address in @temporary_addresses %> 

    <tr id="row-<%= temporary_address.id -%>"> 
     <%= form_for temporary_address, :remote => true do |form| %> 

      <td> 
       <%= link_to "x", temporary_address, :method => :delete, :remote => true %> 
       <%= form.submit "s" %> 
      </td> 

      [... form fields ...] 
     <% end %> 
    </tr> 

<% end %> 

그러나,이 경우에만 작동 할 때 : 원격 => 실제 사용 하지입니다.

resources :temporary_addresses 

은 경로 파일에 있습니다. 링크 삭제가 작동하고 있으며 양식을 사용하지 않을 때 작동합니다 : remote => true.

진정한 => 원격으로 를 제출 누르면

Started POST "/temporary_addresses/12" for 127.0.0.1 at 2011-07-17 12:46:15 +0200 
    Processing by TemporaryAddressesController#update as HTML 
    Parameters: {[...] "commit"=>"s", "temporary_address"=>{[...]}, "id"=>"12"} 

누군가가 이것에 대해 단서가 않습니다 다음과 같은 응답 원격 => 진정한 작업없이

Started POST "/temporary_addresses/12" for 127.0.0.1 at 2011-07-17 12:45:26 +0200 

ActionController::RoutingError (No route matches "/temporary_addresses/12") 

제출을 준다?

수정 1 link_to : remote를 삭제하여 검사 할 레코드를 삭제하십시오. 같은 오류가 ...

렌더링 된 형태는 다음과 같습니다

<tr id="row-1"> 
    <td> 
    </td> 

    <form accept-charset="UTF-8" action="/temporary_addresses/1" class="edit_temporary_address" data-remote="true" id="edit_temporary_address_1" method="post"> 

     <div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /> 
      <input name="_method" type="hidden" value="put" /><input name="authenticity_token" type="hidden" value="vpFbYO7L9fVtBsWej37FUBobraYjjdWA/F8AjWTwC7A=" /> 
     </div> 

      <td> 
       <input id="temporary_address_firstname" name="temporary_address[firstname]" size="30" type="text" value="John" /> 
      </td> 
      <td> 

       <input id="temporary_address_lastname" name="temporary_address[lastname]" size="30" type="text" value="Doe" /> 
      </td> 
      <td> 
       <input id="temporary_address_email" name="temporary_address[email]" size="30" type="text" value="[email protected]" /> 
      </td> 
      <td> 
        New record 
      </td> 
      <td> 
       <input id="temporary_address_submit" name="commit" type="submit" value="save" /> 
      </td> 

     </form> 
</tr> 
+0

레일즈는 '_method'라는 매개 변수로 실제 메소드를 결정합니다. 자바 스크립트를 통해 요청을 보내면이 매개 변수가 실제로 누락 된 것 같습니다. 레일즈를 게시 할 수 있습니까? js 및 가능한 렌더링 된 폼의 예? – moritz

+0

폼에 ': remote => true'가있는 어딘가에 button_to가 있을까요? –

+0

@dylan 거기에는 원격 인 delete_link가 있습니다. 그리고 그게 다야. – pduersteler

답변

0

가 해결!

간단한 것. Firefox는 유효한 html이 아닐 때 일을 재정렬합니다. 위에 주어진 결과는 소스 코드입니다. 이제는 웹 개발 도구 모음 덕분에 생성 된 소스 코드를 보았습니다. 문제는 분명합니다. div : display : none을 사용하여 숨겨진 양식 필드가 양식 외부로 이동되었습니다.

관련 문제