2010-05-12 11 views
1

이것은 설명하기가 어렵지만 여기서는 설명하겠습니다. 학생, 수업, 과제 및 성적이 포함 된 레일스 앱이 있습니다.레일 채우기 양식 필드

학생 쇼보기에는 학생이 수강하는 모든 코스 목록과 해당 코스와 관련된 과제가 있습니다. 학생과 과제 사이에 기록 된 성적이있는 모든 과제는 성적을 기술하고 다른 모든 과제는 '해당 사항 없음'을 표시합니다. 제가하고 싶은 것은 클릭 한 링크에 따라 학생과 할당 필드가 미리 채워진 양식에 대한 링크가있는 것입니다.

다음은 예입니다. 피터 파커 (Peter Parker)는 '수학 시험'의 성적을 받았지만 '수학 CW'는 그렇지 못했습니다. 사용자가 '추가'링크를 클릭하면 등급이 추가 될 준비가 된 학생 이름과 과제 이름이 미리 채워진 양식으로보기가 표시됩니다.

alt text http://img695.imageshack.us/img695/7540/screenshot20100512at180.png

나는 기본적으로 가장 좋은 형태, 방법이나 형태가 편집 할 수없는 방식으로 데이터를 표시해야하는이 데이터를 전달하는 방법을 모르겠어요.

감사합니다.

답변

3

잭, 그 중 하나는 당신이 할 수있는 편집 할 수없는 방식으로 데이터를 표시 비교적 쉽게 그것을 사용할 수

나는 student_id 및 assignment_id에 전달하려면 어떻게 http://www.w3.org/TR/html401/interact/forms.html#h-17.12

형태? 시스템은 로컬에서만 사용되지만, 모든 것을 덜 검증합니다. - Jack

Jack 현재 student_id와 assignment_id를 통과 할 수있는 현재보기가 필요합니다. link_to처럼.

<%= link_to "show me my assignments", {:action => 'show', :controller => "assignments"}, :student_id => student.id, :assignment_id => student.assignment[0].id %> 

할 것입니다이 링크가 할당 컨트롤러의 show 액션을 호출 무엇

(이 편안한 경로를 사용하는 것이 좋을 것입니다, 그러나 이것은 무슨 일이 일어나고 있는지 잘 보여줍니다 참고). 당신은 호출하여 컨트롤러의 id의를 얻을 수 있습니다 :

assignment_id = params[:assignment_id] 
student_id = params[:student_id] 
@student = Student.find(:first, :conditions {:id => student_id}) 
... 

그런 다음/응용 프로그램 /보기/할당/디렉토리 아래에 당신의 show.html.erb 당신이 양식 코드를 렌더링 할 필요가

, 뭔가 같은 :

<%= form_for @student, :student ... 

내가 여러 가지 가능성을 제시 한 것은 당신이 묻는 질문이 조금 광범위하다는 것입니다. 작은 덩어리로 나누면 (응용 프로그램에 집중하지 않고 하나의 단일 작업에 더 집중) 포럼 구성원에게 다시 질문하는 것이 더 도움이 될 수 있습니다.

당신에 대한 추가 질문을 할 수 : 에서 인스턴스에서 양식을 생성 컨트롤러

  • 를 데이터베이스에서 항목을 찾는 링크
  • 에서 컨트롤러에

    • 전송 데이터를에 변수 컨트롤러
    • 마지막으로 양식의 text_field를 사용하지 않도록 설정하십시오.

    내가보기에 컨트롤러에서 뷰로 데이터를 보내고 컨트롤러에서 다른 뷰를 렌더링하기 위해 데이터를 사용하고, 뭔가를 파악할 수 없다면 당신이 가진 문제에 대해 매우 집중된 질문을하고, 모든 제품에 대해 훨씬 더 나은 결과를 얻게 될 것입니다.

  • +1

    snowmaninthesun이 올바른 위치에 있습니다. * 그러나 * 양식 필드를'disabled'하지 마십시오 -'readonly'로 만듭니다. 무능력한 투입물은 그들의 가치를 제출하지 않은 ** 점이 다릅니다. – nfm

    +0

    이 답변을 주셔서 대단히 감사합니다. snowmaninthesun - 정말 감사 드리며 답변을 통해 포인터를 사용하여 약 10 분 내에 작업 할 수있었습니다. 두목, 우두머리 – Jack

    1

    나는 폼에 링크 만하고 student_id와 assignment_id를 전달했습니다. 양식 필드를 "편집 불가능"으로 만들 수는 없지만 사용자가 정보를 표시하고 저장하기 전에보기/편집 할 수있는 권한이 있는지 확인할 수 있습니다. 여기에 몇 가지 질문이

    +1

    기술 수정. 양식 필드를 사용하지 않도록 설정할 수는 있지만 양식의 데이터가 변경되지 않았다고 절대 신뢰해서는 안됩니다. – Anna

    +0

    student_id 및 assignment_id를 양식에 어떻게 전달합니까? 시스템은 로컬에서만 사용되지만, 모든 것을 덜 검증합니다. – Jack

    관련 문제