0

WEB_DAV を使用してサイトにファイルを配置しようとしています。(ルビーの宝石)

例に従うと、 nil 例外が発生します

#### GEMS
require 'rubygems'
begin
  gem "net_dav"
rescue LoadError
  system("gem install net_dav")
  Gem.clear_paths
end
require 'net/dav'


uri = URI('https://staging.web.mysite');
user = "dave"
pasw = "correcthorsebatterystaple"

dav = Net::DAV.new(uri, :curl => false)
dav.verify_server = false
dav.credentials(user, pasw)

cargo = ("testing.txt")
File.open(cargo, "rb") { |stream|
  dav.put(urI.path +'/'+ cargo, stream, File.size(cargo))
}

これを実行すると、

`digest_auth': can't convert nil into String (TypeError)

これは、nav.rb ファイルの 197 行目に関連しています。

 request_digest << ':' << params['nonce']

それで、私が追加しなかったステップは何ですか?この宝石の正しい使用例はありますか? うまくいく何かをするものは甘いでしょう:)

副次的な質問: これは web_DAV を実行するために使用する正しい gem ですか? 古いメンテナンスされていない宝石のようです。おそらく、タスクを達成するためにもっと使用されているものがありますか?

4

1 に答える 1

0

Try referencing the hash with a symbol rather than a string, i.e.

request_digest << ':' << params[:nonce]

In a simple test

baz = "baz" params = {:foo => "bar"} baz << ':' << params['foo']

results in the same error as you're getting.

于 2012-12-04T01:53:27.257 に答える