2013-04-23 1 views
0

저는 레일스에서 ​​새로운 것이므로 아래 오류가 계속 발생합니다. 어떤 도움이라도 대단히 감사하겠습니다. 부디!NilClass에 대한 정의되지 않은 메소드 'model_name': Class Rails 3

오류 : NilClass에 대한 정의되지 않은 메서드`MODEL_NAME ': 클래스 여기

내 회원 컨트롤러입니다.

class MembershipsController < ApplicationController 

def new 
end 

def create 
    @user = User.find_by_email(params[:email]) 
    @project = Project.find(params[:project_id]) 
    @membership = @project.memberships.build(project_id: @project.id, user_id: @user.id) 
    redirect_to project_url(@membership.project_id) 
end 

end 

회원 가입 양식입니다. 프로젝트 경로 아래에 중첩되어 있습니다.

<%= form_for([:project, @membership]) do |f|%> 
    <div class="field"> 
    <%= f.label "Enter the email of the person you'd like to invite:" %> 
    <%= text_field_tag :email %> 
    </div> 

    <div class="actions"> 
    <%= f.submit "Save", :class=>"btn btn-primary btn-large" %> 
    </div> 
<% end %> 

회원 자격 테이블은 프로젝트 테이블과 사용자 테이블 간의 조인 테이블입니다.

위의 오류가 계속 발생하는 이유를 알 수 없습니다. 어쩌면 내가 빠진 것이있을 수 있습니다. 도와주세요! 감사!

답변

0

@user 또는 @project의 두 객체 중 하나를 찾을 수 없습니다. 결과는 무효가 되더라도. nil 객체에 대해 메서드를 호출 할 수 없습니다. 오류가있는 객체가 결과를 기록하는 위치를 더 잘 파악할 수 있습니다. @project이 프로젝트 인스턴스가 아닌 :project입니다

Rails.logger.debug @user.inspect 
Rails.logger.debug @project.inspect 
0

양식은 form_for [@project, @membership]해야한다.

관련 문제