为什么Rails runner没有返回结果



我的Rails运行程序有问题。当我尝试使用if时,即使是通过命令行,它也无济于事!它不显示错误消息,也不显示操作的结果。

例如,如果我尝试

rails runner Credit.count

定义了模型Credit,方法计数为

Credit.first.update_attribute(:estado, "En proceso")

或者更简单的任务,跑步者什么都不做!

我试着说环境就是发展,但什么都不管用。有人有什么见解吗?我做错什么了吗?

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

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

update_attribute:它只返回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>

如果你刚刚在控制台中编写了Credit.first.update_attribute(:estado, "En proceso"),你不应该有结果,但你可以在DB中看到结果,为了检查update_attribute是否真的更新了它,你可以写为update_attribute!,也可以写:

应将truefalse打印到控制台的p Credit.first.update_attribute(:estado, "En proceso")

原来我是个白痴。

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

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

最新更新