2013-08-21 4 views
1

내 응용 프로그램에서 팀은 도전 과제를 해결하기 위해 만들어졌습니다. 팀이 만들어지면 회원은 해당 팀에 가입 할 수 있습니다. 도전을 만들 때ROR : 중첩 된 자원 : NoMethodError

모든 작동 -> 팀,하지만이 팀 구성원을 추가하는 때이 오류가 나타나면 Team_members # 새로운

오류

NoMethodError을

은 1 호선 제기 곳 /home/vincent/solvabl/app/views/team_members/_form.html.erb보기 :

undefined method `team_team_members_path' for #<#<Class:0x9bdadcc>:0xa179df0> 

추출 소스 (약 1 호선) : 템플릿 포함의

1: <%= form_for([@challenge,@team,@team_member]) do |f| %> 
2: <% if @team_member.errors.any? %> 
3:  <div id="error_explanation"> 
4:  <h2><%= pluralize(@team_member.errors.count, "error") %> prohibited this team_member from being saved:</h2> 

추적 : 응용 프로그램/뷰/team_members/new.html.erb

Rails.root :/홈/빈센트/solvabl 응용 프로그램 추적 | 프레임 워크 추적 | 전체 추적

app/views/team_members/_form.html.erb:1:in `_app_views_team_members__form_html_erb___477348688_81202980' 
app/views/team_members/new.html.erb:3:in `_app_views_team_members_new_html_erb___135218923_85112930' 
app/controllers/team_members_controller.rb:36:in `new' 

요청

매개 변수 :

{"challenge_id"=>"1", 
"team_id"=>"1"} 

표시 세션 덤프

표시 ENV 덤프 응답

헤더 :

어떤 도움이 많이 감사합니다

<%= form_for([@team,@team_member]) do |f| %> 
    <% if @team_member.errors.any? %> 
    <div id="error_explanation"> 
     <h2><%= pluralize(@team_member.errors.count, "error") %> prohibited this team_member from being saved:</h2> 

     <ul> 
     <% @team_member.errors.full_messages.each do |msg| %> 
     <li><%= msg %></li> 
     <% end %> 
     </ul> 
    </div> 
    <% end %> 

    <div class="field"> 
    <%= f.label :team_id %><br /> 
    <%= f.number_field :team_id %> 
    </div> 
    <div class="field"> 
    <%= f.label :user_id %><br /> 
    <%= f.number_field :user_id %> 
    </div> 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

None 

경로

resources :challenges do 
    resources :teams do 
    resources :team_members 
    end 
end 

컨트롤러

def create 
    @team_member = TeamMember.new(params[:team_member]) 
    @team_member.team_id = @team.id 
    @team_member.user_id = current_user.id 

    respond_to do |format| 
     if @team_member.save 
     format.html { redirect_to [@team,@team_member], notice: 'Team member was successfully created.' } 
     format.json { render json: [@team,@team_member], status: :created, location: [@team,@team_member] } 
     else 
     format.html { render action: "new" } 
     format.json { render json: @team_member.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

보기 !

답변

1

당신이 가진 루트는 challenges_team_team_members_path입니다. 얻기 위하여 team_team_members_path은 당신의 config/routes.rb에 다음을 추가 :

resources :teams do 
    resources :team_members 
end 

업데이트 :

이 또한 이미 정의한 것 외에해야한다는주의하시기 바랍니다. 따라서 routes.rb의 내용은 다음과 같습니다.

resources :challenges do 
    resources :teams do 
    resources :team_members 
    end 
end 

resources :teams do 
    resources :team_members 
end 
+0

감사합니다. 실제로 이것은 많은 의미가 있습니다. 나는 내 컴퓨터로 돌아 가면 이것을 시도 할 것이다. 이게 효과가 있다면 알려 드리겠습니다. 다시 한 번 감사드립니다! –

+0

이것은 효과가있었습니다! 다시 한 번 감사드립니다! –

+0

@ThomasVincentBlomberg, 대단합니다. 천만에요. – vee