2012-01-28 35 views
52

Tôi vừa cài đặt Devise trong ứng dụng của mình, định cấu hình chế độ xem và mọi thứ. Tuy nhiên, khi tôi nhấp vào nút đăng ký, tôi nhận được lỗi này:Biến hoặc phương thức địa phương không xác định `unconfirmed_email 'khi đăng ký người dùng?

NameError in Devise::RegistrationsController#create 
undefined local variable or method `unconfirmed_email' for #<User:0x00000103721b28> 

Tại sao điều này? Ngoài ra, tôi đang sử dụng tlsmail để gửi email ra thông qua tài khoản kinh doanh gmail của tôi. Điều này cũng có thể là một vấn đề.

+0

Điều này thường biểu thị cột bị thiếu trong cơ sở dữ liệu cho các kiểu như Người dùng. Bạn có thể cần tham khảo tài liệu về Devise để xem liệu bạn có cần chạy một di chuyển để thêm nó hay không. – tadman

Trả lời

114

unconfirmed_email là cần thiết cho reconfirmable. Đối với một số lý do này đã được kích hoạt theo mặc định trong config/intializers/devise.rb:

config.reconfirmable = true 

Tất cả bạn phải làm là thiết lập này thành false.

+5

Hoặc nhận xét. – Jazz

25

Bạn bỏ lỡ cột unconfirmed_email trong db.

thêm t.reconfirmable trong cuộc di cư và chạy rake db:migrate

hoặc nếu bạn đang sử dụng đưa ra> = 2,0

t.string :unconfirmed_email 
+0

Cảm ơn, nhưng tôi thực sự không muốn xác nhận lại, vì một số lý do nó được bật theo mặc định. Xem câu trả lời của tôi. – varatis

+0

't.reconfirmable' là gì? bạn có thể có nghĩa là 't.string: unconfirmed_email'? oops, hơi muộn =) – trushkevich

+0

@trushkevich, no! devise có các phương thức trợ giúp riêng của nó (như có thể xác nhận lại), bạn chỉ cần gọi ra tên mô-đun, và nó sẽ làm tất cả các việc di chuyển để làm cho nó hoạt động. – Fivell

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