1

我遇到了 Rails 跑步者的问题。当我尝试使用 if 时,即使是通过命令行,它什么也没做!它不显示错误消息,也不显示操作结果。

例如,如果我尝试

rails runner Credit.count

定义了模型Credit,方法算作

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

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

我试过说环境就是发展,但没有任何作用。有没有人有任何见解?难道我做错了什么?

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

4

3 回答 3

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>
于 2014-08-29T06:30:43.647 回答
0

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

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

于 2014-08-29T05:49:52.457 回答
0

原来我是个白痴。

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

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

于 2014-08-30T01:14:29.670 回答