2010-11-23 2 views
2

안녕하세요, 저는 운동 경기 등록을 처리 할 앱을 작성하고 있습니다. 이 이벤트 중 일부는 출품작마다 여러 명의 선수가 있지만 일부 선수는 운동 선수가 한 명뿐입니다. 나는 현재과 같이 BoatsController에 새로운 액션에 선수를 보내고있다 :레일, NEW에서 CREATE (으)로 리디렉션

<%= link_to 'Register', new_event_boat_path(@event) %> 

'새 동작이 이벤트는 배 당 하나의 사용자가 필요로 본다면, 어떻게 내가 직접 사용자에게 전달할 수 있습니다 내 질문 CREATE 동작? 보다 간결하게, 액션 내에서 POST를 어떻게 생성 할 수 있습니까?

답변

-1
def new 
    #assuming boats is an array 
    if boats.size > 1 
     redirect_to boats_path(:user => params[:user], :boat => params[:boat]), :method => :post 
    else 
     #new stuff 
    end 
end 

boats_path 또는 만들려는 모든 개체.

+0

멋지다. 내가 있어야 할 곳에 나를 데려다 준다. –

+0

그것이 효과가 있기를 바랄뿐입니다. 그러나 내가 확신하는대로 미래에 어떻게해야하는지는 아닙니다. – s84

1

대신 작성 액션에서 대부분의 코드를 캡슐화 한 메소드를 작성하고 create (평소와 같이 매개 변수 사용) 및 특수한 경우 (사용자 객체에서 데이터 전송)에서 새 메소드를 호출 할 수 있습니다.

4

아무 것도하지 않아도됩니다. 생성 작업은 컨트롤러의 한 방법 일뿐입니다. 다른 방법과 마찬가지로 호출 할 수 있습니다.

def new 
    if event_only_requires_one_user_per_boat 
     create 
    else 
     #display new form 
    end 
end 

또한이 방법을 사용하면 사용자가 리디렉션하지 않으므로 사용자가 여러 요청을하지 않아도됩니다.

관련 문제