2016-06-23 8 views
0

出力を得るためにインライン​​Cを使用しています。私がやろうとしているのは、インラインCコードを実行し、その出力をコントローラ経由でレールビューにレンダリングすることです。 インラインCのコードスニペットは、次のとおりインラインC出力値をレールコントローラに保存

class Something 
    inline(:C) do |builder| 
    builder.c 'int test1() { 
    char array[20] = "-------Hello from Ruby!------\n"; 
    printf("%s", array); 
    return array; 
    }' 
    end 
end 

オブジェクトがレールアプリケーションこの方法のコントローラで作成されています。私はインラインCの出力値を格納しようとすると、出力がレール上に表示されている間

def index 
    something = Something.new 
    @something = something.test1 
end 

は今、それだけで(ログファイル上に存在しない)のログは適用されません。表示される値は、Somethingクラスのreturn array;です。 インデックスメソッドには、@somethingインスタンスセットがあり、値は4421355280のような値を格納するだけです。すなわち"-------Hello from Ruby!------" 対応するコントローラーアクションをレンダリングするためのインデックスがあります。事前に

<h1>Travel</h1> 
<h3><%= @something %></h3> 

どのように私はおそらく店の出力値ができ"-------Hello from Ruby!------"

Output of inline C @something?に感謝します。

答えて

0

申し訳ありませんが、私はCコードの戻り値型にいくつか問題があったようです。それはされている必要があります:

class Something 
    inline(:C) do |builder| 
    builder.c 'char * test1() { 
    char array[20] = "-------Hello from Ruby!------\n"; 
    printf("%s", array); 
    return array; 
    }' 
    end 
end 
関連する問題