2011-03-13 2 views
0

저는 Ruby on Rails에 비교적 익숙합니다. (가) 버튼 컨트롤러 update 호출 "적용"을 누르면 예상대로Rails 2.3.8 : 버튼을 하이퍼 링크로 표시

<% form_for(@configuration) do |f| %> 
<%= f.text_field :parameter_a %> 
<%= f.text_field :parameter_b %> 
<%= button_to("Apply", {} , { :method => "put" }) %> 
<% end %> 

: 지금부터 내 레일에 2.3.8 응용 프로그램을보기 중 하나에서이 작업 코드가 있습니다. 이제 버튼을 하이퍼 링크 스타일로 표시하고 싶습니다.이 작업을 수행하는 가장 효율적인 방법을 찾고 있습니다.

다른 방법이있을 수 있지만 link_to을 올바르게 사용하는 방법을 찾지 못했습니다. PUT 요청에서 업데이트 된 값을 전달하지 않았습니다. link_to을 권하고 싶다면 어떻게 할 수 있는지 알려주십시오. 다음은 작동하지 않는 코드입니다.

<%= link_to("Apply", configuration_path(@configuration), { :method => "put" }) %> 

감사합니다.

답변

0

한 가지 방법은 HTML button 요소 및 일부 CSS를 사용하는 것입니다. 나는 JS가 필요 없으므로이 기법을 선호한다. 또한 입력 태그에서 유형을 선택하거나 클래스를 사용하여 선택할 수 있지만 버튼은 더 멋집니다.)

여기에 button_to을 사용하면 안됩니다. Rails의 button_to 태그는 자신의 양식을 만들기 때문에 양식 외부에서 사용해야하기 때문에, f.submit을 사용해야합니다. 제출 유형으로 입력을 생성합니다. 또는 제출 버튼을 사용할 수 있습니다.

: 당신은 당신이 버튼이 CSS로 링크처럼 보이게 수 있다는 것을 사용하고 나면, 그 다음

def submit_button(text) 
    content_tag :button, text, :type => :submit 
end 

:

돌아 가기 button 태그를 사용하여, 나는 도우미를 작성하는 것을 선호

button { 
    background-color: transparent; 
    border: none; 
    color: #1f44ff; 
    text-decoration: underline; 
} 

button:hover { 
    cursor: pointer; 
} 

일부 브라우저에서는 호버 상태가 작동하도록 JS를 사용해야 할 수도 있지만 양식 제출에 JS를 사용하는 것보다 여전히 좋습니다.

+0

Thnx, 완벽하게 작동합니다! – jayrock

0

HTML에서 링크가 포함 된 양식을 제출하는 유일한 방법은 링크를 일부 자바 스크립트로 트리거하는 것입니다.

이 당신의 선택의 자바 스크립트 라이브러리와 함께 실제 양식 제출을 대체, 의사 코드 :이 작업을 수행하는

<% form_for(@configuration), :id=>'my_form' do |f| %> 
    <%= f.text_field :parameter_a %> 
    <%= f.text_field :parameter_b %> 
    <%= link_to_function "Apply", "$('my_form').submit()" %> 
<% end %> 
+0

응답 해 주셔서 감사합니다. – jayrock