解决:我做了一些错误,所有这些都涉及我的控制器接收数据。发送数据时,以下方法没有任何问题。
1:我在reportController #create
中没有使用@ report.save2:我没有在我的控制器中传递params [:report]
3:我将“skip_before_filter:verify_authenticity_token”添加到我的应用程序控制器以停止日志中的警告。 解决了。数据插入成功。
===== ORIG。下面的问题=====
我需要一个外部程序来发出一个将东西插入Ruby on Rails数据库的命令。 我理解这种安全问题,但由于这个应用程序不是公开的,所以它不是一个真正的问题。
这是我希望实现的工作流程:
REST客户端> RAILS>创建新的DB TABLE行
出于举例的目的:我的route.rb文件包含
resources :reports
所以我能够使用这些路线进行CRUD。我似乎无法让我的休息客户端正常工作。
更新: 我在ONE尝试了一个RUBY rest client AND curl命令,但没有用。
require 'rest_client'
require 'json'
hash_to_send = {:test_name => 'Fake Name', :pass_fail => 'pass',:run_id => 1111, :category => 'Fake Category'}
#formulate CURL attempt
myCommand = "curl -H 'Content-Type: application/json' -X POST http://localhost:8889/report.json -d #{hash_to_send.to_json} > deleteme.html"
#execute CURL attempt
`#{myCommand}` # RESULT--> 795: unexpected token at 'test_name:Fake Name'
#Make Ruby rest client attempt
response = RestClient.post( "http://localhost:8889/report.json",
hash_to_send.to_json,
:content_type => :json, :accept => :json
)
#debug info
puts myCommand # Returns --> {"test_name":"Fake Name","pass_fail":"pass","run_id":1111,"category":"Fake Category"}
答案 0 :(得分:1)
而不是命令行中的curl,使用ruby脚本并处理REST调用和Gems的JSON转换。例如,使用rest-client
gem(https://github.com/archiloque/rest-client)和标准json
gem,您可以写:
require 'rest_client'
require 'json'
response = RestClient.post( "http://localhost:8889/report.json",
params_in_hash.to_json,
{ :content_type => :json, :accept => :json }
)