2012-10-16 3 views

답변

1

는 IS 현재 작업 이름 만 params[:action]

<%= form_tag controller_action_path(:id => @project.id), :method => :post do %> 
    <% if @project_is_synced %> 
     <%= submit_tag 'Update synchronization', :name => 'update' %> 
     <%= submit_tag 'Stop synchronization', :name => 'stop' %> 
    <% else %> 
     <%= submit_tag 'Start synchronization', :name => 'start' %> 
    <% end %> 
<% end %> 

: 만 PARAMS에서 작업 이름을 가져 서버 측에서 : 이것은 내가 작동하지 해봤이다 이 문제를 디버깅하는 가장 쉬운 방법은 로컬로 실행하고 그들이 통해 오는대로 매개 변수를 보면, 또는 행동에 매개 변수를 기록하는 것입니다 : 당신은 submit_tags라는 이름의 한

if request.post? 
    logger.warn "POST #{params}" 

end 

, 그래서 대신 기본 이름의 '저지' 각 버튼마다 다른 n ame이고 'start', 'stop'또는 'update'매개 변수를 확인해야합니다. 뷰를 변경하지 않으 그러나 경우이 사용 (분명히 렌더링 코드를 교체), 변화하는 값 :

if params[:start] 
    render :text => "start" 
    elsif params[:update] 
    render :text => "update" 
    else 
    render :text => "stop" 
    end 
: [커밋]

단순한 이름을 제거하고 확인 PARAMS을 위해 단지이다

링크 된 게시물의 답변에 대한 의견은이 문제를 다루지 만, 왜 당신이 그것을 놓쳤는 지 알 수 있습니다.

+0

매개 변수했다 : { "UTF8"=> "✓" "authenticity_token"=> "fhtuzoK/U7KkZ8Fm/Wj5bIscoO2tEhPxJMQw0AK1O6I =" ""releases"=> "true", "events"=> "true", "usecases"=> "true", "id"=> "1"} 프로젝트 이름을 입력하십시오. – Dmitry

+0

이 문제가있는 것처럼 보입니다. http://stackoverflow.com/questions/2000111/rails-is-not-passing-the-commit-button-parameter – Dmitry

+1

매개 변수가 위의 게시 된 양식과 일치하지 않으며 어떻게 든 커밋 버튼이 제거되므로 위 코드가 작동하지 않도록 설정 한 경우 비활성화해야합니다 (주의 : 커밋 버튼의 이름 지정에 대한 노트는 여전히 appl입니다. ies) –