我正在尝试构建一个简单的Web应用程序,该应用程序将传入文本字段的数据传递给API。我创建了一个模型,其中包含一些方法来对API进行一些基本调用。我已经设置了一个带有文本字段和提交按钮的表单,以将数据传递给控制器。当我提交时,我收到的错误是我调用的方法没有定义。然而,如果我进入控制台并尝试同样的事情,它会按预期工作。关于我缺少什么的任何建议?
型号:
def update(serial, deploy_value)
HTTParty.post("#{BASE_URL}devices/update/serial/#{serial}?#{API_KEY}",
:body => {"customFieldValues": [{"name": "Deploy","value": "#{deploy_value}"}] }.to_json,
:headers => { 'Content-Type' => 'application/json'}
)
end
控制器
class GroundControlController < ApplicationController
require 'GroundControl'
def update
serial = params[:serial]
GroundControl.new.update(serial, "TEST")
redirect_to(:back)
end
end
我得到的错误:
GroundControlController#update中的NoMethodError GroundControl的未定义方法`update':0x007fa062aa1298
从控制台我可以执行以下操作:
2.3.0 :002 > require 'GroundControl'
=> true
2.3.0 :003 > test = GroundControl.new
=> #<GroundControl:0x007fa2676a8838>
2.3.0 :004 > GroundControl.new.update("ABC123", "TEST")
=> #<HTTParty::Response:0x7fa2671fb218 parsed_response={"id"=>43270, "serial"=>"ABC123", "udid"=>nil, "name"=>nil, "model"=>nil, "os"=>nil, "connected"=>false, "customFieldValues"=>[{"name"=>"Deploy", "value"=>"TEST"}]}, @response=#<Net::HTTPOK 200 OK readbody=true>, @headers={"server"=>["nginx/1.6.3"], "date"=>["Tue, 12 Apr 2016 15:09:27 GMT"], "content-type"=>["application/json; charset=utf-8"], "content-length"=>["150"], "connection"=>["close"], "access-control-allow-origin"=>["*"]}>
2.3.0 :005 >
有关我收到的错误的更多信息:
GroundControlController#update中的NoMethodError #
的未定义方法`update'Extracted source (around line #10):
8 def update
9 serial = params[:serial]
10 GroundControl.new.update(serial, "TEST")
11 redirect_to(:back)
12
13 end