2011-03-11 5 views
8

양식에 관해 질문이 있습니다. 제목과 본문이있는 게시물 (내 응용 프로그램에 eReport라고 함)을 저장하는 상당히 표준적인 양식이 있습니다. 테이블에는 부울 값인 "published"필드도 있습니다. 저장된 eReport는 공개 사이트에서이 필드가 true로 설정된 경우에만 표시되며 기본값은 false입니다.2 양식에 버튼을 제출하십시오.

기본 확인란이 아닌 "양식 게시"버튼과 "초안으로 저장"버튼의 두 가지 버튼을 양식의 끝에 표시하고 싶습니다. 사용자가 전자를 누르면 게시 된 필드가 true로 설정됩니다. 후자의 경우 거짓. PHP에서는 다른 이름 값을 가진 2 개의 제출 필드를 표시 한 다음 if/else 문으로 입력을 처리하여 빌드 할 적절한 SQL 쿼리를 결정했습니다. Rails에서 적절한 논리로 컨트롤러에이 로직을 배치한다고 가정하고 있지만 버튼의 이름이나 id 값을 조작하는 방법을 모르겠습니다.

기록을 위해 나는 Formtastic을 사용하고 있지만 누군가가 기본 레일스 양식 태그로이 작업을 수행하는 방법을 보여줄 수 있다면 괜찮습니다. 내 양식의 코드는 다음과 같습니다.

<% semantic_form_for @ereport do |form| %> 

    <% form.inputs do %> 
    <%= form.input :title %> 
    <%= form.input :body %> 
    <% end %> 
    <% form.buttons do %> 
    <%= form.commit_button :label => "Publish Now" %> 
<%= form.commit_button :label => "Save as Draft" %> 
    <% end %> 
<% end %> 

미리 도움을 청하십시오!

답변

20

내가 formtastic에 대해 잘 모르지만, 기본 레일 빌더를 형성하여,이 같은 그것을 할 수 :

<%= form.submit "Save with option A", :name => "save_option_a" %> 
<%= form.submit "Save with option B", :name => "save_option_b" %> 

그런 다음 컨트롤러에서, 당신은 PARAMS에서 사람들을 선택할 수 있습니다 :

을 @iddlefingers 대답에 추가
if params[:save_option_a] 
    # do stuff 
end 
+0

정보를 제공해 주셔서 감사합니다! 그 일은 훌륭했습니다. – joshukraine

0

jQuery를 사용해야한다고 생각합니다. 버튼 클릭 이벤트를 바인딩하고 지정된 위치에 양식을 제출할 수 있습니다.

+0

최근에 jQuery를 배우기 시작했으나이를 명심하겠습니다. 감사! – joshukraine

1

, 여기에 응용 프로그램의 로그의 도면이다

Parameters: {"utf8"=>"✓", ..., "comentar"=>"Confirmar"} 
(설명을 목적으로 인해 일부 쓸모없는 PARAMS를 스트라이핑)

여기서 comentar은 매개 변수의 이름이고 "Confirmar"은 단추의 텍스트이기도 한 값입니다.

(당신은 당신이 작업하는 params의 수를 줄이기 위해 원하는 경우) 당신이 할 수 일반적으로 그래서 submit_tag "Confirmar", :name => 'comentar'

얻었다

submit_tag "othervalue", :name => 'SAMEname', submit_tag "onevalue", :name => 'SAMEname' 여러 ...

을하고 그들을 검색하여 컨트롤러

if params[:SAMEname] == "onevalue" 
# do stuff 
elsif params[:SAMEname] == "othervalue" 
#do different stuff 
end 
관련 문제