2016-12-13 1 views
0

LoadError 내가 위의 오류가 누군가 다음 Ruby on Rails 오류에 대해 설명 할 수 있습니까? 내가 양식을 제출하면 CandidatesController 번호에

Unable to autoload constant Usermailer , expected Z:/railsassignment/student/app/mailers/usermailer.rb to define it

을 만들 수 있습니다. 양식이 레코드를 처리하고 후보자가 데이터베이스에 추가되지만 내가 새로 등록한 후보자에게 보내려고하는 환영 전자 메일이 보내지지 않으며 위의 오류로 인해 사용자가 진행할 수 없습니다.

후보자 컨트롤러

def create 
    @candidate = Candidate.new(candidate_params) 

respond_to do |format| 
    if @candidate.save 
    Usermailer.welcome(@candidate).deliver_now ***<-- Error highlights this line*** 
    format.html { redirect_to @candidate, notice: 'User was successfully  
    created.' } 
    format.json { render :show, status: :created, location: @candidate } 
    else 
    format.html { render :new } 
    format.json { render json: @candidate.errors, status: 
:unprocessable_entity } 
    end 
end 
end 

usermailer.rb이

Z : /railsassignment/student/app/mailers/usermailer.rb (usermailer 디렉토리)

class UserMailer < ActionMailer::Base 
default from: "[email protected]" 

def welcome(candidate) 
@candidate = candidate 
mail(:to => candidate.can_email, :subject => "Welcome to EmployeMe.com, You  
have registered successfully!") 
end 
end 

이해야 당신은 더 이상 파일을 볼 필요가 내게 코멘트를 드롭하고 나는 그들을 추가 할 것입니다 질문.

+3

'Usermailer'! ='UserMailer' – Stefan

답변

3

엉망인 이름 지정 규칙의 경우처럼 보입니다. Rails 명명 규칙으로 당

파일 이름snake_case클래스 이름 CamelCase에서에 있어야합니다. 시나리오에서 파일 이름은 user_mailer.rb이어야합니다.

그래서 하나 Usermaileruser_mailer.rb 또는 클래스 이름 UserMailerusermailer.rb 이름을 바꿉니다.

+1

'Usermailer'와 'usermailer.rb' 또는'UserMailer'와'user_mailer.rb'입니다. – Stefan

+0

@Stefan : 답장을 보내 주셔서 감사합니다. –

+0

그래서 usermailer.rb를 user_mailer.rb로 변경하면 다음과 같은 오류가 발생합니다. NameError in CandidatesController # 초기화되지 않은 상수 CandidatesController :: Usermailer. 원래 줄에 강조 표시된 동일한 줄을 나타냅니다. –

1

파일 이름에 항상 뱀 케이스를 사용하십시오.

Z:/railsassignment/student/app/mailers/user_mailer.rb 

NOT은 :

01 :는

Z:/railsassignment/student/app/mailers/usermailer.rb 

은 항상 클래스 이름

UserMailer.welcome(@candidate).deliver_now 

하지 않는 낙타 케이스를 사용

상수를 로딩하는 방법에 관심이 있다면 this에 방황 할 수 있습니다.

관련 문제