2012-12-21 2 views
6

나는 예,이 같은 형태의 2 명을 제출 있나요가이컨트롤러에서 fmit의 이름 매개 변수를 얻으려면 어떻게해야합니까?

<%= form_for @book, :html => { :class => 'form-horizontal' } do |f| %> 
.... 
    <%= f.submit nil, :class => 'btn btn-primary', :name => 'update' %> 
    <%= f.submit 'Destroy', :class => 'btn btn-danger', :name => 'destroy' %> 
.... 
<% end %> 

처럼 코딩있어하는 _form.html.erb을 만들어, 그 중 둘은 '갱신'로 이름을 가지고 '파괴' .

사용자가 destroy 단추를 누르면 books_controller의 업데이트 작업이 호출됩니다.
'update'또는 'destroy'요청인지 여부를 판단합니다.
그렇다면 컨트롤러에서 이름 매개 변수를 가져 오는 방법은 무엇입니까?

업데이트 작업은 폼의 다른 입력 값을 필요합니까, 파괴이

def update 

if params[:books][:name] == 'destroy' 
    destroy transaction 
else 
    update transaction 
end 

end 
+0

는 시도가 PARAMS에 당신은 내가 그것에 대해 생각 –

답변

4

이 시도 두 번째 양식,

<%= f.submit 'Update', :class => 'btn btn-primary', :name => 'submit' %> 
<%= f.submit 'Destroy', :class => 'btn btn-danger', :name => 'submit' %> 

를 제출하는 첫 번째 양식 때 당신이 "업데이트"와 로 params[:submit]을 얻을 것이다업데이트 할 때 D estroy 당신은

0

같은 것?

업데이트 동작을 목표로하는 입력과 destoy 동작을 목표로하는 파괴 버튼 만있는 두 가지 형식을 갖는 것이 더 쉽고 (더 명확합니다)?

당신은 내가 당신이에서 필요한 필드의 값을 가져 오기 위해 JS/jQuery를 사용하는 것이 좋습니다 또한 것이다, 나는 아직도 당신이 두 개의 서로 다른 행동과 두 개의 서로 다른 형태를 가지고 제안, 다른 입력에 액세스 할 수 필요 경우 이제

+0

감사를 검사하지만 각 양식에 대해 2 개 보안 문자 이미지를 배치하고 싶지 않았다 컨트롤러에 "파괴"등의 params[:submit]을 얻을 것이다 :( – HUSTEN

관련 문제