2010-01-25 11 views
1

우선, 저는 Ruby on Rails를 처음 접했습니다. 내가하는 일보다 더 나은 방법이 있다면 알려 주시기 바랍니다.아약스가있는 여러 개의 제출 버튼

내가하고 싶은 것은 체크 박스가있는 항목 목록에 대해 여러 작업을 수행하기 위해 여러 개의 아약스 제출 버튼을 사용하는 것입니다. 따라서 원하는만큼 많은 체크 박스를 선택하면 어떻게해야 할 지 선택할 수 있습니다. 다음과 같이

나는 부분적으로 사용하여이 아약스를 해결할 수 : 이것은 위대한 작품을

remote_form_for :profile, :url => {:controller => 'announcements', :action => 'deactivate'}, :html => { :method => :put} do |f| 
     f.submit 'Publish', :confirm => 'Are you sure?' 
#Then the list 

. 지금 내가하고 싶은 것은 여러 개의 액션을 수행 할 수 있도록 다른 "제출"또는 버튼을 추가하는 것입니다. 따라서 remote_form_for의 url 문은 각 버튼마다 이와 같이 바뀝니다. 예 :

게시 버튼 : 일부 컨트롤러에서 일부 작업을 수행합니다. 비활성화 버튼 : 다른 작업을 수행하십시오. 읽음으로 표시 : 다른 작업을 수행하십시오.

분명합니까?

답변

4

원하는만큼 "제출"을 추가하십시오. 모든 제출물에는 입력 태그의 '이름'이 '커밋'으로 설정되고 값은 라벨로 설정됩니다. 그래서 당신은 제출 PARAMS를 검색하여 확인할 수 있습니다

remote_form_for :profile, :url => {:controller => 'announcements', :action => 'deactivate'}, :html => { :method => :put} do |f| 
     f.submit 'Publish', :confirm => 'Are you sure?' 
     f.submit 'Something Else" 
# Then the list 

def deactivate 

    case params[:commit] 
    when 'Publish' then do something 
    when 'Something Else' then do something else 

    end 

end 
+0

감사합니다. 필자는 IE 작성시이 기능이 작동하지 않는다고 읽었습니다. 제출 버튼이나 다른 것에 대한 : name 속성과 같은 뭔가가 필요하다고 생각합니다. 그게 뭔지 아십니까? –

+0

이름을 쉽게 재정의 할 수 있습니다. fmmit "Something Else", : name => 'somethingelse'. 그런 다음 매개 변수를 확인하십시오. [: somethingelse] – ffoeg

+0

작동하지 않습니다. "Something Else"제출 버튼을 클릭하면 params에서 "Publish"를 얻습니다 ... 왜? –

2

마지막으로 컨트롤러, 나 자신에 의해 그것을 해결할 수 있습니다.

아약스 양식에 여러 제출 버튼에 버그가 있다는 것은 잘 알려져 있습니다. 난 here 설명 된 것과 같이 숨겨진 해결 방법을 사용했습니다.

감사합니다. 브라이언

관련 문제