Ich verwende Inline C, um etwas Ausgang zu bekommen. Was ich versuche, ist, den Inline-C-Code auszuführen und seine Ausgabe über den Controller zur Schienenansicht zu rendern. Das Codefragment für Inline-C ist:Inline C Ausgabewert speichern auf Schienen Controller
class Something
inline(:C) do |builder|
builder.c 'int test1() {
char array[20] = "-------Hello from Ruby!------\n";
printf("%s", array);
return array;
}'
end
end
Objekt wird in der Steuerung der Schienen-Anwendung auf diese Weise erstellt.
def index
something = Something.new
@something = something.test1
end
Jetzt, wenn ich versuche, Ausgangswert des Inline-C zu speichern, es ist einfach nicht anwendbar, während die Ausgabe angezeigt wird auf den Schienen lügen (nicht auf der Log-Datei). Ich bin sicher, dass der angezeigte Wert über return array;
der Something
Klasse ist. Die Index-Methode hat @something
Instanz-Set, die nur einige Wert wie 4421355280 speichert, aber nicht den Wert. dh "-------Hello from Ruby!------"
Ich habe einen Index, um die entsprechende Controller-Aktion zu rendern.
<h1>Travel</h1>
<h3><%= @something %></h3>
Wie kann ich möglicherweise Speicher Ausgabewert "-------Hello from Ruby!------"
in @something?
Output of inline C
Vielen Dank im Voraus.