gpt4 book ai didi

ruby-on-rails - 如何将数据从 Matlab 发送到 Rails

转载 作者:太空宇宙 更新时间:2023-11-03 20:26:29 25 4
gpt4 key购买 nike

我对 Rails 和网络开发还很陌生。

我正在 Matlab 中生成一堆对象,我想将这些对象发送到我的 Rails 应用程序中的数据库。谁能告诉我如何做到这一点?

到目前为止,在 Rails 端,我已经为我的数据生成了基本的脚手架。我可以使用位于“/myobjects/new”的表单将对象添加到我的数据库。

在 Matlab 端,我一直在尝试使用 HTTP POST 请求添加对象,如下所示:

s = urlread('http://localhost:3000/myobjects.json','POST',{'myobject','{name1:''value1''}'})

此操作失败并向 Rails 控制台打印以下内容:

Started POST "/myobjects.json" for 127.0.0.1 at 2012-06-16 11:48:28 -0400
Processing by MyobjectsController#create as JSON
Parameters: {"myobject"=>"{name1:'value1'}"}
WARNING: Can't verify CSRF token authenticity
Completed 500 Internal Server Error in 1ms

NoMethodError (undefined method `stringify_keys' for "{name1:'value1'}":String):
app/controllers/myobjects_controller.rb:43:in `new'
app/controllers/myobjects_controller.rb:43:in `create'

这种方法可能离谱很远,但希望上面的代码能明确我的目标。谁能告诉我如何修复我的代码,或者建议一个更好的策略来将我的数据导入 Rails?

编辑

目前我的新方法和创建方法看起来像这样(但我可以根据需要更改它们)

# GET /irs/new
# GET /irs/new.json
def new
@ir = Ir.new

respond_to do |format|
format.html # new.html.erb
format.json { render json: @ir }
end
end

# POST /irs
# POST /irs.json
def create
@ir = Ir.new(params[:ir])

respond_to do |format|
if @ir.save
format.html { redirect_to @ir, notice: 'Ir was successfully created.' }
format.json { render json: @ir, status: :created, location: @ir }
else
format.html { render action: "new" }
format.json { render json: @ir.errors, status: :unprocessable_entity }
end
end
end

最佳答案

最后我放弃了尝试用 matlab 的内置函数来做这件事。相反,我导入了一个 Java 库 ( Apache HttpComponents )。这是我想出的脚本。这完成了工作。

javaaddpath(['utils/httpcomponents-client-4.2/lib/httpcore-4.2.jar']);
javaaddpath(['utils/httpcomponents-client-4.2/lib/httpclient-4.2.jar']);


import org.apache.http.impl.client.DefaultHttpClient
import org.apache.http.client.methods.HttpPost
import org.apache.http.entity.StringEntity


httpclient = DefaultHttpClient();

httppost = HttpPost('http://127.0.0.1:3000/myobjects.json');
httppost.addHeader('Content-Type','application/json');
httppost.addHeader('Accept','application/json');

params = StringEntity('{"field1":"value1"}');
httppost.setEntity(params);

response = httpclient.execute(httppost);

关于ruby-on-rails - 如何将数据从 Matlab 发送到 Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11064979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com