前提・実現したいこと
Ruby on Rails と楽天RMSAPIを利用して、クーポンを発行するアプリを作成しています。
REXML::Document.newにてxmlドキュメントを作成し、Postしたいのですが、
NoMethodErrorが発生してしまいます。
色々と調べましたが原因が分からず困っています。
ご教授頂けると幸いです。
プログラミング初心者です。
発生している問題・エラーメッセージ
NoMethodError in HomeController#new undefined method `bytesize' for <UNDEFINED> ... </>:REXML::Document Did you mean? bytes Extracted source response = http.post(uri.path, data, header)
該当のソースコード
home_controller.rb
ruby
1 def new 2 require 'net/https' 3 require 'uri' 4 require 'rexml/document' 5 6 uri = URI.parse("https://api.rms.rakuten.co.jp/es/1.0/coupon/issue") 7 8 data = REXML::Document.new(<<-XML) 9 <?xml version="1.0" encoding="UTF-8"?> 10 <request> 11 <couponIssueRequest> 12 <coupon> 13 <couponName> 14 Test 15 </couponName> 16 17 ~長いので省略~ 18 </request> 19 XML 20 21 header ={ 22 'Content-Type' => "application/xml", 23 'Authorization' => 'ESA ' + Base64.strict_encode64('serviceSecret:licenseKey') 24 #店舗固有のKeyを記述 25 } 26 27 http = Net::HTTP.new(uri.host, uri.port) 28 http.use_ssl = true 29 http.verify_mode = OpenSSL::SSL::VERIFY_NONE 30 31 response = http.post(uri.path, data, header) 32 33 @body = response.body 34 @code = response.code 35 36 end
試したこと
エラーメッセージで検索しましたが有力な情報が見つけられませんでした。
補足情報(FW/ツールのバージョンなど)
Rubyバージョン:2.6.6p146
Railsバージョン:5.2.4.3
OS:WindowsServer2012R2
ブラウザ:Firefox77.0.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/02 08:34