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