2010-06-14 3 views
1

컨트롤러에서 액션이 실행되는지를 결정하는 폼을 생성하는 폼의 선택 상자를 추가하려고합니다. 양식의 레일즈 확인란이 컨트롤러에서 동작 만들기를 결정합니까?

는 기본적으로 응용 프로그램은 새 프로젝트가 될 때마다 FreeagentCentral에서 프로젝트 생성 :

def create 
    @company = Company.find(params[:kase][:company_id]) 
    @kase = @company.kases.create!(params[:kase]) 

    respond_to do |format| 
     params[:send_to_freeagent] ? @kase.create_freeagent_project(current_user) 

     #flash[:notice] = 'Case was successfully created.' 
     flash[:notice] = fading_flash_message("Case was successfully created.", 5) 

     format.html { redirect_to(@kase) } 
     format.xml { render :xml => @kase, :status => :created, :location => @kase } 
    end 
    end 

을하고 내 양식에서 내가 가진 : 나는 일이 싶은 무엇

<%= check_box_tag :send_to_freeagent, 1 %> Create project in Freeagent? 

가의 경우입니다 선택 상자가 체크되어 프로젝트가 Freeagent로 전송됩니다. 그렇지 않은 경우 케이스는 정상적으로 생성되지만 Freeagent 데이터는 전송되지 않습니다. 내가 잘못 뭐하는 거지

SyntaxError in KasesController#new 
controllers/kases_controller.rb:114: syntax error, unexpected '\n' 

어떤 생각 : 나는 위의 코드를 사용하는 경우

, 나는 예외 잡은 오류가?

감사합니다,

대니

+0

를 사용하는 거라고? –

+0

114. params [: send_to_freeagent]? @ kase.create_freeagent_project (current_user) – dannymcc

답변

1

난 당신이 라인 (114)에 무엇을해야합니까

def create 
    @company = Company.find(params[:kase][:company_id]) 
    @kase = @company.kases.create!(params[:kase]) 

    @kase.create_freeagent_project(current_user) if params[:send_to_freeagent].to_bool 

    respond_to do |format|  
     # ... 
    end 
end 
+0

'params [: send_to_freeagent] .to_bool'는 확인란을 선택하지 않으면 예외를 던집니다. 체크되지 않은 상자는 전혀 제출되지 않았기 때문입니다. 'params [: send_to_freeagent]'만 체크하면됩니다. 모든 값은 상자가 선택되었음을 나타냅니다. –

관련 문제