2016-12-10 1 views
0

Ich habe eine Datenbank voller Filminformationen, und ich möchte, dass Benutzer diese Informationen bearbeiten können, aber ich möchte nicht, dass die Informationen gerade aktualisiert werden. Ich möchte, dass eine Anfrage an einen Moderator gesendet wird, um sie vor allem zu überprüfen.Wie bearbeite ich eine Informationsseite und sende eine Anfrage, die für eine Mod aktualisiert werden soll?

Wie würde ich mit so etwas gehen? Ich dachte daran, eine weitere Spalte mit den bearbeiteten Informationen zu erstellen, damit Mods sie überprüfen und aktualisieren können.

  1. So ein Benutzer/Filme/1
  2. Benutzer die Informationen und beachten Sie werden dann sehen, gehen würde, dass einige der Informationen veraltet ist.
  3. Der Benutzer klickt auf eine Schaltfläche zum Bearbeiten von Informationen und bearbeitet die Informationen.
  4. Benutzer drückt speichern und es wird an eine Spalte für einen Mod zu überprüfen gesendet.
+0

scheint die richtige Idee, obwohl es wahrscheinlich besser wäre, eine neue Tabelle (vielleicht "vorgeschlagene_Edits"?) Als eine Spalte in einer vorhandenen Tabelle zu erstellen. –

Antwort

2

Ihr Ansatz wird wahrscheinlich funktionieren, wenn nur ein Benutzer vorhanden ist. Im Allgemeinen (wie von max pleaner erwähnt) sollten Sie eine neue Tabelle mit Verweisen auf die Benutzertabelle erstellen und ausstehende Änderungen dort speichern.

Ein anderer Ansatz wäre rails tables inheritance. So etwas sollte tun das Ding

class MoviesAbstract < ActiveRecord::Base 
    self.abstract_class = true 
end 

class Movies < MoviesAbstract 
    # your code 
end 

class MoviesPengingChanges < MoviesAbstract 
    belongs_to :user 
    validates_presence_of :user 
    # ensures user won't propose two changes of one field 
    validates_uniqueness_of :user, scope: [:title, :desctiption] 
end 

class User < ActiveRecord::Base 
    has_many :movies, dependent: :destroy 
end 

Und als Moderator einiger users 'Änderungen über einige movie genehmigt, user.movies_pending_changes.where(movie: movie) zerstört werden können.

Verwandte Themen