PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Tại sao tôi nhận được ActionView ::Template ::Error:undefined method `name 'cho nil:NilClass trên Heroku nhưng không phải cục bộ

Theo cập nhật của bạn, tôi sẽ đề xuất điều này:Mỗi khi bạn xóa một người dùng có bài đăng và sau đó cố gắng liệt kê các bài đăng của họ <%= post.user.name %> sẽ trả về nil vì bài đăng này không còn người dùng để tham khảo. Bạn có thể sử dụng

has_many :posts, dependent: :destroy 

trong mô hình Người dùng như tôi đã đề xuất ở trên, hoặc bạn thêm một số chức năng xóa người dùng để tránh lỗi khi cố xem bài viết của họ. Một số lựa chọn là:

Khi người dùng bị xóa, bạn chỉ có thể xóa mọi thứ trừ tên và id của họ trong hàng đó của bảng người dùng, điều đó sẽ cho phép bạn có <%= post.user.name %> trả về một giá trị.

Khi người dùng bị xóa, bạn có thể xóa mọi thứ trong thông tin bảng Người dùng của họ và thêm "-người dùng đã xóa" sau khi nó giống như những gì Tumblr làm khi người dùng hủy kích hoạt tài khoản của họ và tên của họ xuất hiện trong một bài đăng trên một số Tumblr khác.

Bạn có thể tạo Người dùng trong DB được gọi là "người dùng đã xóa" và để người dùng đó kế thừa mọi bài đăng từ người dùng bị xóa. Trong Bộ điều khiển người dùng, hãy thêm một cái gì đó vào delete của bạn hành động để thay đổi trường user_id trong bài đăng của họ thành tài khoản "do người dùng xóa".

Hoặc cuối cùng, bạn có thể chỉ cần kiểm tra xem post.user có trả về giá trị hay không, và nếu không, chỉ cần in nội dung như "Người dùng không còn tồn tại trong hệ thống"

Tất nhiên điều này phụ thuộc vào việc bạn có muốn cho phép người dùng bị xóa nhưng vẫn giữ bài đăng của họ hay không. Đó chắc chắn là một trường hợp có thể xảy ra nếu đây không chỉ là một dự án lớp hoặc một cái gì đó bạn đang làm chỉ để học Rails. Hi vọng điêu nay co ich. Điều đó chắc chắn khiến tôi suy nghĩ về những cạm bẫy trong việc cho phép người dùng xóa hồ sơ của họ mà không cần có thứ gì đó để xóa.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tuple to List - Kiểu trả về Python / PostgreSQL của Bản ghi SETOF

  2. Tổng quan về sao chép lôgic trong PostgreSQL

  3. Làm cách nào để xuất bảng dưới dạng CSV với các tiêu đề trên Postgresql?

  4. Cái nào tốt hơn - Bỏ trước một Ngoại lệ hoặc Kiểm tra lỗi

  5. Chỉ mục cụm và không cụm trong PostgreSQL