2011-10-19 3 views

답변

3

을 제출하고자하는 자바 스크립트와 링크는 GET 요청이 아닌 POST 요청 때문에. 따라서 다음 코드를 가지고 있다고 가정 해 보겠습니다.

<%= form_for @post, :html => { :id => 'form' } do |f| %> 
    <div class="field"> 
    <%= f.label :title %> 
    <%= f.text_field :title %> 
    </div> 
    <div class="field"> 
    <%= f.label :body %> 
    <%= f.text_area :body %> 
    </div> 
    <div class="actions"> 
    <a id="submit">Submit</a> 
    </div> 
<% end %> 

다음은 자바 스크립트 파일 중 하나에 다음을 추가해야합니다. < Rails 3.1을 사용하는 경우이 파일을 application.js에 추가하기 만하면됩니다. Rails 3.1을 사용하는 경우 assets/javascript 디렉토리의 js 파일 중 하나에 추가하십시오.

$(function() { 
    $('#submit').click(function() { 
    $('#form').submit(); 
    }); 
}); 

즉, POST를 사용하려면 link_to 메서드 호출에 메서드 옵션을 전달할 수 있습니다. 그러나 자바 스크립트를 사용하지 않고이를 수행하면 양식 데이터가 제출되지 않습니다. 따라서 위의 작업을 수행하거나 자바 스크립트를 사용하여 쿼리 문자열에있는 것처럼 URL에 데이터를 추가해야합니다.

<a><%= submit_tag "Submit", class: "fake-button" %></a> 

그런 다음, 유행에 따라 디자인을 변경 :

.fake-button { 
    padding: 0; 
    border: none; 
    display: inline; 
} 

그래서 기술적으로 여전히 버튼의하지만 매우 링크처럼 보이는

+0

고마워. application.js에 추가하면 모든보기, 페이지 등에 적용될 수 있습니까? –

+0

내 기본 application.js가 레이아웃 파일에 포함되어 있습니다. 보시고 싶다면'<% = javascript_include_tag : defaults %>'또는 그와 비슷한 것을 확인하십시오. 기본값 기호에는 application.js뿐만 아니라 다양한 js 라이브러리가 포함됩니다. Rails 3.1이 아닌 경우 위 코드가 작동하려면 jQuery를 애플리케이션에 추가해야 할 수도 있습니다. – agmcleod

0

여기에 내가했던 한 방법입니다. 그것은 조금 해키지만 :)

관련 문제