2013-09-08 4 views
0

저는 Ruby on Rails를 처음 사용했습니다. 나는 resources_controller 파일을 보았을 때마다 resources#new이라고 부르면 양식이 들어있는 new.html.haml 파일로 연결됩니다. Submit 버튼을 클릭하면 위의 resources_controller.rb 파일의 create 기능이 내게 리디렉션됩니다. 아무도 어떻게 설명 할 수 있을까요? 사실 나는 이런 식으로 뭔가를 할 :리소스 컨트롤러에서 새로운 기능으로 리디렉션

내가 주어진 롤 번호와 학생이 존재하지 않는 경우에만 새로운 학생을 만들려고합니다. 하나 만 후 학생 정보를 입력 할 또 다른 형태가있을 것입니다 곳 롤 번호와 학생이 다음 새 HAML를 호출 할 필요가없는 경우 롤 번호에 대해 하나 개의 필드가,이 곳 new.html.haml를 들어 는 양식이 포함 이 후자의 양식 제출을 요청해야합니다. 그리고 학생이 이미 양식을 빠져 나오면 자동으로 필드를 채워야합니다. 나는 그것을 만들기 위해 항상 저를 리디렉션됩니다 new.html.haml의 형태로 제출 버튼을 클릭 할 때마다 때문에

나는,이 작업을 수행하는 방법을 알아낼 수 없습니다.

+0

당신이 –

답변

0

당신은 단순히 숫자가 기존의 기록 여부에 해당하는지 확인하기 # 기능을 만들 자원의 상단에 몇 가지 코드를 추가 할 수 있습니다. 그는 확장 된 양식을 채울 수 있도록 :

이 경우 당신이 해당 편집 페이지 (ID/편집이 자원// 같을 것이다)로 사용자를 리디렉션, 기존에 해당합니다. 이 새로운 기록을의 경우

, 당신은 정기적으로 치료를 계속합니다.

그래서, 당신이

resources_controller.rb

def create 
    if !(resource = Resource.find(params[:id])).blank? 
    redirect_to edit_resource_url(resource) 
    end 
    ... 
+0

답변을 도움을 얻기 위해 질문에 코드를 추가 한 경우가 더 좋을 것처럼 보이는 코드를 추가해야합니다 리소스가 존재하지 않을 때 사용자가 리소스 세부 정보를 입력하는 다른 폼으로 리디렉션해야하고 그 폼을 제출하면 사용자를 컨트롤러의 기능을 만들기 위해 리디렉션 할 것이기 때문에 부분적으로 정확합니다. 후자의 양식을 제출하면 사용자가 생성되도록 리디렉션되는 방식을 이해하지 못합니다. – Joy

+0

리소스가 존재한다면 자신과 빌드 할 수있는 다른 폼을 가진 뷰로 리다이렉트 할 수 있습니다. form_for 라인에 다음과 같은 속성을 설정하십시오 : : controller => 'resources', : action => 'your_custom_action' 컨트롤러 'def your_custom_action ...'에서 함수를 정의해야하고 경로에서이 함수에 대한 새 경로를 추가해야합니다. – amine

+0

이 명확한가? 그리고 그것은 효과가 있었습니까? – amine