CandidatesController中的LoadError #create
无法自动加载常量
Usermailer
,预期Z:/railsassignment/student/app/mailers/usermailer.rb
来定义
当我提交表单时,我收到上述错误。表单处理记录,候选人被添加到数据库,但是我试图发送给新注册候选人的欢迎电子邮件不发送,上述错误阻止用户继续进行。
候选人控制器
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 directory)
class UserMailer < ActionMailer::Base
default from: "from@example.com"
def welcome(candidate)
@candidate = candidate
mail(:to => candidate.can_email, :subject => "Welcome to EmployeMe.com, You
have registered successfully!")
end
end
如果你需要查看更多文件,请给我发表评论,我会很快将它们添加到问题中。
答案 0 :(得分:3)
这似乎是一个混乱的命名约定的情况。
根据Rails
命名约定,文件名应位于snake_case
中的CamelCase
和类名中。在您的方案中,文件名应为user_mailer.rb
。
因此,要么usermailer.rb
重命名为user_mailer.rb
要么
班级名称UserMailer
至Usermailer
。
答案 1 :(得分:1)
始终使用蛇形案例作为文件名。
Z:/railsassignment/student/app/mailers/user_mailer.rb
不会强>
Z:/railsassignment/student/app/mailers/usermailer.rb
始终使用驼峰案例作为您的班级名称
UserMailer.welcome(@candidate).deliver_now
不会强>
Usermailer.welcome(@candidate).deliver_now
如果您对常量加载如何使用rails感兴趣,可以选择this。