2012-07-03 23 views
8

Sau khi thiết lập bưu phẩm (3.2.6) trong Ruby on Rails (3.2.6) Tôi nhận được lỗi này:NoMethodError không xác định phương pháp mail cho

NoMethodError (không xác định phương pháp 'mail' cho #):

user_mailer.rb của tôi trông như thế này:

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

    def activation_mail(user) 
    @user = user 
    mail(:to => user.mail, :subject => "Registration") 
    end 
end 

tôi theo dụ được cung cấp ở đây: http://guides.rubyonrails.org/action_mailer_basics.html

Trong file cấu hình tôi đã thêm dòng này: config. action_mailer.delivery_method =: test Tôi cũng đã thử với: smtp và cấu hình cho gmail.

Tôi đã bỏ lỡ điều gì?

+0

bạn có thể chấp nhận câu trả lời không? – doug

Trả lời

0

Tôi đặt cược bạn "sử dụng" đối tượng bạn đang đi qua là hoặc là 1) không khởi tạo một cách chính xác, hoặc 2) một mảng thay vì một tài khoản cá nhân đối tượng

1

Đó là một lỗi typo. user.mail của bạn không tồn tại. Có thể phải là user.email hoặc thứ gì đó khác.

3

bạn nên cố gắng thay thế

def activation_mail(user) 
    @user = user 
    mail(:to => user.mail, :subject => "Registration") 
    end 

với

def activation_mail(user) 
    @user = user 
    mail(:to => @user.mail, :subject => "Registration") 
    end 
4

Tôi đã có một vấn đề tương tự gần đây và sửa chữa nó bằng cách thay thế:

def self.activation_mail() 

với

def activation_mail() 
0

Tôi thấy rằng lỗi đánh máy trong chế độ xem thư của bạn có thể gây ra sự cố này. Thông báo lỗi là gây hiểu nhầm.

Các vấn đề liên quan