PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Mengapa saya mendapatkan ActionView::Template::Error:undefined method `name' for nil:NilClass di Heroku tetapi tidak secara lokal

Menurut pembaruan Anda, saya akan mengusulkan ini:Setiap kali Anda menghapus pengguna yang memiliki posting dan kemudian mencoba membuat daftar posting mereka <%= post.user.name %> akan mengembalikan nihil karena posting ini tidak lagi memiliki pengguna untuk dirujuk. Anda dapat menggunakan

has_many :posts, dependent: :destroy 

dalam model Pengguna seperti yang saya sarankan di atas, atau Anda menambahkan beberapa fungsi untuk menghapus pengguna untuk mencegah kesalahan saat mencoba melihat posting mereka. Beberapa pilihannya adalah:

Ketika pengguna dihapus, Anda bisa menghapus semuanya kecuali nama dan id mereka di baris tabel pengguna itu, yang akan memungkinkan Anda untuk memiliki <%= post.user.name %> mengembalikan sebuah nilai.

Ketika pengguna dihapus, Anda dapat menghapus semua yang ada di info tabel Pengguna mereka dan menambahkan "-pengguna-dihapus" setelah itu seperti yang dilakukan Tumblr ketika pengguna menonaktifkan akun mereka dan nama mereka muncul di pos di beberapa Tumblr lainnya.

Anda dapat membuat Pengguna di DB yang disebut "dihapus pengguna" dan meminta pengguna itu mewarisi setiap posting dari pengguna yang dihapus. Di pengontrol Pengguna, tambahkan sesuatu di delete . Anda tindakan untuk mengubah bidang user_id di postingan mereka menjadi akun "dihapus pengguna".

Atau akhirnya Anda bisa memeriksa untuk melihat apakah post.user mengembalikan nilai, dan jika tidak, cukup cetak sesuatu seperti "Pengguna tidak lagi ada di sistem"

Ini semua tentu saja tergantung pada apakah Anda bahkan ingin mengizinkan pengguna untuk dihapus tetapi tetap menyimpan posting mereka. Itu pasti kasus yang mungkin terjadi jika ini lebih dari sekadar proyek kelas atau sesuatu yang Anda lakukan hanya untuk mempelajari Rails. Semoga ini membantu. Ini tentu membuat saya berpikir tentang jebakan dalam mengizinkan pengguna untuk menghapus profil mereka tanpa ada sesuatu untuk dibersihkan setelah mereka.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah PostgreSQL menggunakan tf-idf?

  2. pilih nilai maks dan min setiap x jumlah baris-postgresql

  3. Indeks multi-kolom unik Postgres untuk tabel gabungan

  4. Terjadi kesalahan saat membaca data dari penyedia. Sertifikat jarak jauh tidak valid menurut prosedur validasi

  5. django mendapatkan bulan dari tanggal untuk agregasi