2010-03-10 2 views
1

두 개의 MVC 모임 및 일정이 있습니다. 회의에는 많은 의제 항목이있을 수 있습니다.new.html.rb 페이지에 변수 전달

show.html.rb 미팅 페이지에서 '새 아젠다 항목 만들기'를 클릭 할 수 있도록이 두 페이지를 설정하려고합니다. 이는 사용자가 회의 ID를 전달하는 new.html.rb 일정 페이지로 리디렉션하고 new.html.rb 일정 목록을 회의 ID로 미리 채우는 것입니다.

현재 URL에 회의 ID를 전달하는 다음과 같은 사항이 있지만 양식에 전달하는 방법을 알지 못합니다.

회의 : show.html.rb :

<%= link_to "Add Agenda Item", :action => 'new_agenda', :id => @meeting.id %> 

는 부드러운 이동, 나는 아주 새로운 해요. 그러나 사전에 많은 감사드립니다.

크리스티앙 마케도입니다.

답변

0

Agenda 컨트롤러 내의 new 작업은 회의 ID 쿼리 매개 변수에 액세스 할 수 있어야합니다. 다음과 같이 입력하십시오 :

def new 
    @agenda = Agenda.new 
    @agenda.meetings.build(Meeting.find(params[:id])) 
end 
+0

좋아요, 추가하려고 시도했지만 이제는 새로운 일정 항목에 대한 링크를 클릭 할 때 오류가 발생합니다. 기대하지 않았을 때 개체가 없습니다! nil.build를 평가하는 동안 오류가 발생했습니다. 그렇지 않은 경우에도 오류가 발생했습니다. 두 번째 코드 줄이 내가 URL에서 전달한 회의 ID를 얻는 방법을 이해하지 못합니다. 나는 여기서 뭔가를 놓치고 있다고 생각합니다. 아니면 그냥 오래된 연습. – Christian

+0

'@agenda.meeting = Meeting.find (params [: id])'로 변경해보십시오. 회의 ID는'params' 해시로 전달됩니다. 자세한 내용은 다음을 참조하십시오. http://guides.rubyonrails.org/routing.html#querystring-parameters –

+0

새로운 Agenda보기에있는 경우 params [: id]가 사용자에게 id를 제공하기 때문에 작동하지 않습니다. Agenda가 Meeting의 중첩 된 리소스 인 경우 params [: meeting_id]를 수행 할 수 있습니다. 또한 @ Agenda.meetings는 회의가 많은 의제를 가지고 있기 때문에 이해가되지 않습니다. – Karl