2016-04-27 14 views
0

ich habe ein Modell CustomerProfile, mit einer Spalte i24wholesaleid In meiner Pundit Politik CustomerProfilePolicy. Ich wollte so etwas Berechtigungslogik zur Show Methode hinzufügen:Pundit, hat der Datensatz nicht mein Modell Attribut

def show? 
     if ((user.wholesale? and record.i24wholesaleid == user.customer_profile_id)) ... 

aber ich erhalte eine NoMethodError:

undefined method `i24wholesaleid' for #<Class:0x007f30ce23d600> 

und ich verstehe nicht, warum Datensatz eine generische Klasse, sollte es sein, eine Instanz meiner Modellklasse, nicht wahr? Die Richtlinie erweitert lediglich die von Pundit erstellte Standard-Anwendungspolicy.

danke.

Antwort

0

Wie Sie gesagt haben: Ihr Spaltenname ist i24customerid, aber Sie versuchen, i24wholesaleid aufzurufen. Dies ist der Grund, warum Sie erhalten undefined method 'i24wholesaleid' for #<Class:0x007f30ce23d600>

+0

Entschuldigung ein Fehler der Name der Spalte ist "i24wholesalealed", korrigiere ich die Frage. Die Frage ist, warum Record keine Instanz von CustomerProfile ist – Joel