Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.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 RubyonRails:在RESTAPI内部使用更新_Ruby On Rails_Ruby_Rest_Api_Webrequest - Fatal编程技术网

Ruby on rails RubyonRails:在RESTAPI内部使用更新

Ruby on rails RubyonRails:在RESTAPI内部使用更新,ruby-on-rails,ruby,rest,api,webrequest,Ruby On Rails,Ruby,Rest,Api,Webrequest,在访问rails上的RESTAPI时,我发现在rails控制台中可能会发生这种情况 variable = Model.find(1) //Random id variable.update(:column => variable.column + 1) //my column is numeric 但是,尽管可以在控制台a上使用,但无法找到这种方法到我的RubyAPI的翻译 有什么想法吗?似乎每当有人在控制器中访问您的show方法时,您都在尝试递增计数器。这可以通过增量实现方法: ins

在访问rails上的RESTAPI时,我发现在rails控制台中可能会发生这种情况

variable = Model.find(1) //Random id
variable.update(:column => variable.column + 1) //my column is numeric
但是,尽管可以在控制台a上使用,但无法找到这种方法到我的RubyAPI的翻译


有什么想法吗?

似乎每当有人在控制器中访问您的
show
方法时,您都在尝试递增计数器。这可以通过
增量实现ActiveRecord::Persistence
类的code>方法:

instance = Model.find(params[:id])
instance.increment!(:attribute_to_increment, by = 1)
请注意,
:属性_to_increment
必须是数字


来源:

似乎每当有人访问控制器中的
show
方法时,您都在尝试递增计数器。这可以通过
增量实现ActiveRecord::Persistence
类的code>方法:

instance = Model.find(params[:id])
instance.increment!(:attribute_to_increment, by = 1)
请注意,
:属性_to_increment
必须是数字


来源:

可以在控制台中运行的任何代码都可以在控制器中运行。你能更具体地说明你的问题吗?您不能在控制器中加载模型吗?你对路线有困难吗?这应该不难。您还需要在更新后运行
variable.save
,否则它不会保存更改。@nzajt您不需要在保存后调用update。还有,是的,这个问题没有足够的信息。@maxpleaner我说你需要在
更新后调用
保存
。我从来没有说过在
保存
后需要调用
更新
。这正是问题所在,我的控制器无法识别型号,但控制台能够识别!我有其他控制器运行相同的更新指令,它们确实可以工作(不知道这是否是最佳的方式,但可以工作),我已经在代码中找到了它是否是某种类型的打字错误,但似乎找不到it@nzajt对不起,我倒着说了,但我的意思是你不需要在更新后调用save。更新调用在内部保存。可以在控制台中运行的任何代码都可以在控制器中运行。你能更具体地说明你的问题吗?您不能在控制器中加载模型吗?你对路线有困难吗?这应该不难。您还需要在更新后运行
variable.save
,否则它不会保存更改。@nzajt您不需要在保存后调用update。还有,是的,这个问题没有足够的信息。@maxpleaner我说你需要在
更新后调用
保存
。我从来没有说过在
保存
后需要调用
更新
。这正是问题所在,我的控制器无法识别型号,但控制台能够识别!我有其他控制器运行相同的更新指令,它们确实可以工作(不知道这是否是最佳的方式,但可以工作),我已经在代码中找到了它是否是某种类型的打字错误,但似乎找不到it@nzajt对不起,我倒着说了,但我的意思是你不需要在更新后调用save。更新呼叫并在内部保存。