我的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!
,也可以写:
应将true
或false
打印到控制台的p Credit.first.update_attribute(:estado, "En proceso")
原来我是个白痴。
首先,我必须更改方法的名称,调用Credit.count会调用默认的count方法,所以我将其更改为myMethod。
之后,我可以使用puts函数并轻松更新数据库:)