私は Rails と Web 開発に非常に慣れていません。
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'
このアプローチはベースから外れている可能性がありますが、上記のコードで私の目標が明確になることを願っています。コードを修正する方法や、データをレールに入れるためのより良い戦略を提案してくれる人はいますか?
編集
現時点では、私の new メソッドと create メソッドは次のようになっています (ただし、必要に応じて変更できます)。
# 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