【发布时间】:2015-01-24 16:37:58
【问题描述】:
在暂存时发送邮件时为 nil:NilClass 定义的未定义方法 `split'。
NoMethodError: nil:NilClass 的未定义方法`split'
有没有人遇到过这个错误?在开发环境中,字母走的很完美
21 File "/var/www/vectoring-staging/releases/20140505020949/app/models/feedback.rb" line 11 in deliver
22 File "/var/www/vectoring-staging/releases/20140505020949/app/controllers/feedbacks_controller.rb" line 4 in "createp/controllers/feedbacks_controller.rb" line 4 in create
class FeedbacksController < ApplicationController
def create
@feedback = Feedback.new(params[:feedback])
@feedback.deliver if @feedback.valid?
end
end
class Feedback
include ActiveModel::Model
attr_accessor :email, :message
attr_writer :subject
validates :message, presence: true, allow_blank: false
validates_format_of :email, with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, allow_blank: true
def deliver
FeedbackMailer.new_feedback(self).deliver
end
def subject
@subject = 'A new feedback' if @subject.blank?
@subject
end
end
class FeedbackMailer < ActionMailer::Base
layout 'email'
def new_feedback(feedback)
@message = feedback.message
mail(to: APP_CONFIG.feedback['to_send'], subject: feedback.subject, reply_to: feedback.email)
end
end
【问题讨论】:
-
你调用
.split的方法在哪里? -
你能发布完整的错误信息吗?
-
@WaliAli 那就是我从来没有打电话给
split。 -
我明白你在说什么。该方法必须来自其中一个 gem,或者可能是一个错误。
标签: ruby-on-rails ruby-on-rails-4