Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么Rails runner不返回结果?_Ruby On Rails_Ruby_Runner - Fatal编程技术网

Ruby on rails 为什么Rails runner不返回结果?

Ruby on rails 为什么Rails runner不返回结果?,ruby-on-rails,ruby,runner,Ruby On Rails,Ruby,Runner,我与Rails runner有问题。当我尝试使用if时,即使是通过命令行,它也不起任何作用!它不会显示错误消息,也不会显示操作的结果 例如,如果我尝试 rails runner Credit.count 定义了模型信用,且方法计算为 Credit.first.update_attribute(:estado, "En proceso") 甚至更简单的任务,跑步者什么也不做 我试着说环境就是发展,但没有任何效果。有人有什么见解吗?我做错什么了吗 编辑:我正在查看数据库,这就是问题所在,没有更新

我与Rails runner有问题。当我尝试使用if时,即使是通过命令行,它也不起任何作用!它不会显示错误消息,也不会显示操作的结果

例如,如果我尝试

rails runner Credit.count
定义了模型
信用
,且方法计算为

Credit.first.update_attribute(:estado, "En proceso")
甚至更简单的任务,跑步者什么也不做

我试着说环境就是发展,但没有任何效果。有人有什么见解吗?我做错什么了吗


编辑:我正在查看数据库,这就是问题所在,没有更新。我将第一个元素的“estado”列的值更改为“En proceso”以外的值,但是,无论我使用runner多少次,db都不会显示任何更改。

如果您刚刚在console中编写了
Credit.first.update_属性(:estado,“En proceso”)
,则不应该有结果,但您可以在DB中看到结果,为了检查
update\u属性
是否真的更新了它,您可以编写为
update\u属性也可以只写:

p信贷。首先。更新属性(:estado,“En proceso”)
,该属性应将
true
false
打印到控制台

rails runner:runner在rails上下文中以非交互方式运行Ruby代码

更新_属性:它只返回true或false,如果要输出结果,可以使用“puts”或“p”

比如说,

$ rails r "User.first" #no output, even it will return a user object
$ rails r "puts User.first" # you can use "puts" get the output
#<User:0x007f8a2c76e608>
$rails r“User.first”#没有输出,即使它将返回用户对象
$rails r“puts User.first”#您可以使用“puts”获取输出
#

原来我是个白痴

首先,我必须更改方法的名称,调用Credit.count调用默认的count方法,因此我将其更改为myMethod


之后,我可以使用puts函数轻松地更新数据库:)

如果您尝试其他rails控制台命令(如
rails console
),一切正常?尝试这样做:rails runner“puts Credit.count”rails控制台工作正常。Puts不会在控制台中打印任何内容。问题是,数据库没有被更新,我正在更新的表中没有任何更改。即使您编写类似于
p'hello world'
的内容,您也没有在控制台中使用它?这同样有效。Hoever,将相同的代码放在模型Credit上,并使用rails r调用它,但事实并非如此。