2017-02-10 2 views
0

Ich habe eine Command Tabelle, die rails consoleWie übergeben Sie das Befehlsobjekt an die Methode?

Command(id: integer, created_at: datetime, updated_at: datetime, timeout: 
     integer, name: string, command: text, action: string, reboot_action: 
     string, num_retries: integer, partnum: string, path: string, 
     firmware: string) 

Der letzte Befehl in der Tabelle wie folgt aussehen in etwa so aussehen:

<Command id: 1, created_at: "2017-02-09 17:44:10", 
     updated_at: "2017-02-09 17:44:10", timeout: 60, 
     name: "test", command: "home/app", 
     action: "up"> 

So, wie der Befehl Objekt an die Methode übergeben, so dass Ich werde die erforderlichen Informationen darüber haben, welcher Befehl ausgeführt werden soll und wie mit einem Fehler umzugehen ist.

+0

Übergeben Sie es zu welcher Methode? –

+0

jede Methode wie 'Def Test() Ende' –

+0

Bitte klären Sie, was Sie erreichen möchten. @ Seans Antwort unten ist, wie Sie einen Befehlsdatensatz an eine Methode übergeben würden, aber ich vermute, dass Sie versuchen, etwas anderes zu tun. Versuchen Sie, den Befehl selbst aufzurufen? – Glyoko

Antwort

0

Sie würden es als Variable übergeben, wenn sich die Methode auf einem anderen Objekt befindet. Wenn Sie eine Methode für Ihr Befehlsobjekt aufrufen möchten, verfügen Sie bereits über die Informationen, die in der Instanz benötigt werden.

def some_method(command) 
    #do stuff with command 
end 

command = Command.find 1486662250106112 #get your command instance somewhere 
some_method(command) #passing the command instance to the method 
0

Wenn Sie versuchen, die Shell-Befehl in der Befehlsdatensatzes Befehl Spalte aufzurufen, (Nebenbei bemerkt: Vielleicht möchten Sie einige dieser Namen zu überdenken, wie der Name „Befehl“ auf eine Menge Dinge beziehen hier ...) Sie können dies tun, wie folgt:

command = Command.last # get the command 
system(command.command) # invoke the command 

in der Tat gibt es mehrere Möglichkeiten, einen Shell-Befehl in ruby ​​zu nennen und das ist nur einer der häufigsten Wege, dies zu tun. Weitere Details zu Shell-Befehlen in Ruby und zu alternativen Methoden finden Sie unter this answer.

Wenn Sie sich schließlich Sorgen machen, Ihre Eingaben zu bereinigen (d. H. Wenn Sie befürchten, dass Benutzer benutzerdefinierten, bösartigen Code einfügen), dann werfen Sie einen Blick auf die Dokumentation für Shellwords.

Verwandte Themen