5

Tôi đã thiết lập xác thực trong ứng dụng đường ray bằng cách sử dụng thiết lập, theo this tutorial. Nó hoạt động tuyệt vời, người dùng có thể đăng ký và sau đó đăng nhập bằng email và mật khẩu.xác định/đăng nhập omniauth bằng twitter - xác thực không thành công: email không được để trống

Tôi hiện muốn thêm khả năng đăng ký/đăng nhập bằng twitter. Tôi đang làm theo hướng dẫn từ devise wiki

Ví dụ trong wiki sử dụng facebook, tôi đã thay đổi nó để sử dụng twitter. Nó quản lý để đi đến twitter và yêu cầu ủy quyền, vì vậy tôi chắc chắn rằng tôi có những điều cơ bản làm việc. Tuy nhiên khi nó trở lại ứng dụng của tôi, tôi nhận được lỗi sau.

Validation failed: Email can't be blank 

Tôi đoán là vì tôi không cung cấp địa chỉ email.

Mã tôi đang sử dụng giống hệt nhau (ngoài việc trao đổi facebook thành twitter) với điều đó trong hướng dẫn, vì vậy tôi không đăng bất kỳ mẫu nào. Xin vui lòng cho tôi biết nếu bạn muốn xem bất cứ điều gì.

Tôi khá mới với đường ray nên tôi không chắc chắn cách gỡ lỗi. Có lời khuyên nào về cách tôi nên tiếp tục không?

+3

Tôi cho rằng điều này là do xác thực yêu cầu email nhưng Twitter không cung cấp email. Bạn sẽ không phải yêu cầu email hoặc yêu cầu người dùng nhập địa chỉ email theo cách thủ công. – abraham

Trả lời

3

Chỉ cần xóa ": validatable" khỏi mô hình người dùng n nó sẽ cho phép email trống.hãy làm cho tôi !!

+0

cảm ơn, tôi sẽ cố gắng hết sức trong cuối tuần – Finnnn

2

Tôi biết câu hỏi này là cũ nhưng nó vẫn xuất hiện và tìm kiếm nhanh chóng trên google đã phát hiện ra một số lời khuyên rất xấu. Vì vậy, đây ...

Các cách chính xác để làm cho các email tùy chọn không phải là để loại bỏ các giao diện validatable từ mô hình người dùng của bạn, chỉ cần thêm này để nó thay vì:

def email_required? 
    false 
end 

này ghi đè phương pháp này trong ' class validatable ', báo hiệu cho mã rằng email là một trường tùy chọn, nhưng giữ tất cả những thứ tốt mà validatable bao gồm, như bạn biết ... đảm bảo rằng bạn có mật khẩu thực và những thứ tiện dụng như thế. Nội dung bạn muốn giữ.

Tất nhiên, nếu bạn cần bất cứ điều gì thực sự lập dị, bạn nên xem mã nguồn của giao diện hợp lệ và sao chép trong các xác thực có liên quan và điều chỉnh khi cần thiết. đã cung cấp ở trên có lẽ là đủ.

Hy vọng rằng sẽ giúp một người googler mệt mỏi.

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