我遇到了Rails跑步者的问题。当我尝试使用if时,即使是命令行,它什么都不做!它不显示错误消息,也不显示操作结果。
例如,如果我尝试
rails runner Credit.count
定义了模型Credit
,方法计为Credit.first.update_attribute(:estado, "En proceso")
甚至更简单的任务,跑步者什么也没做!
我试过说环境是发展,但没有任何作用。有没有人有任何见解?我做错了吗?
编辑:我正在看数据库,这是问题,没有更新。我将第一个元素的“estado”列的值更改为“En proceso”以外的值,但是,无论我使用该运行器多少次,db都没有显示任何更改。
答案 0 :(得分:2)
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>
答案 1 :(得分:0)
如果您刚刚在控制台中编写Credit.first.update_attribute(:estado, "En proceso")
,则不应该有结果,但是您可以在数据库中看到结果,以检查update_attribute
是否真正更新了您可以写为update_attribute!
你也可以写:
p Credit.first.update_attribute(:estado, "En proceso")
应该将true
或false
打印到控制台
答案 2 :(得分:0)
原来我是个白痴。
首先,我必须更改方法的名称,调用Credit.count调用默认的count方法,因此我将其更改为myMethod。
之后,我能够使用puts函数并轻松更新数据库:)