2012-04-05 56 views
1

在我以前的問題中,我通過命令行將參數發送到PHP文件時遇到了問題。 PHP正在發送一個json,但我只收到true或false。Rails,獲取從命令行返回的數據

前面的問題: Rails, PHP and parameters

新的問題: Ruby.rb

data = system('php public/jira.php param') 
puts data 

PHP

$output = array(
    "total" => $total 
); 

echo json_encode($output); 

編輯:

答WER:

數據= JSON.parse(數據)

放數據[ '總']#5

回答

1

見本answer

基本上你需要使用:

data = `php public/jira.php param` 
data JSON.parse(data) 
puts data['total'] 

相反的:

data = system('php public/jira.php param') 
puts data 
+0

好吧,我收到我的PHP內容,但軌道好好嘗試一下把它處理JSON。在Rails中:jira ['total']輸出總數而不是數字? – 2012-04-05 11:52:39

+0

嗯...現在我收到以下錯誤:未定義的方法'解碼'爲JSON:模塊。我要求'json'在頂部,但它沒有幫助。 – 2012-04-05 12:00:46

+0

對不起,正確的方法是'JSON.parse(data)'。 – Mischa 2012-04-05 12:01:59

1

系統()將返回TrueClass或FalseClass和顯示輸出,嘗試在控制檯上。

我建議,你可以用開放的方法上的任何URL調用它,這樣你就可以使用打電話給你的PHP腳本:

require 'open-uri' 

open('YOUR PHP SCRIPT PATH WITH PARAMETER') do |response| 
    content = response.read 
end 

或以下鏈接會幫助你。

6 Ways to Run Shell Commands in Ruby